<?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>167671</bug_id>
          
          <creation_ts>2017-01-31 15:46:34 -0800</creation_ts>
          <short_desc>AX: activedescendant on combobox not honored correctly in VoiceOver</short_desc>
          <delta_ts>2024-08-29 14:03:49 -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>WebKit Nightly Build</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>macOS 10.12</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>CONFIGURATION CHANGED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=32100</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=161734</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=269026</see_also>
          <bug_file_loc>https://webkit.org/blog-files/aria1.0/combobox_with_live_region_status.html</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="Kaelig">kaelig</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>andresg_22</cc>
    
    <cc>bgaraventa11</cc>
    
    <cc>b</cc>
    
    <cc>craigcarlyle</cc>
    
    <cc>diegof79</cc>
    
    <cc>dkote</cc>
    
    <cc>ejdickison</cc>
    
    <cc>ericliang</cc>
    
    <cc>jcraig</cc>
    
    <cc>jesse.greenberg</cc>
    
    <cc>kaelig</cc>
    
    <cc>leslie.harper</cc>
    
    <cc>marco.zehe</cc>
    
    <cc>michael</cc>
    
    <cc>michaelcpuckett</cc>
    
    <cc>mvilleneuve</cc>
    
    <cc>naman34</cc>
    
    <cc>scott.vinkle</cc>
    
    <cc>splaktar</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1271955</commentid>
    <comment_count>0</comment_count>
    <who name="Kaelig">kaelig</who>
    <bug_when>2017-01-31 15:46:34 -0800</bug_when>
    <thetext>Steps to reproduce:

1. Go to https://webkit.org/blog-files/aria1.0/combobox_with_live_region_status.html
2. Type &quot;ca&quot; in the text field (it has a role=combobox)
3. Hit &quot;arrow down&quot;, this should select the &quot;American Samoa&quot; option

Actual: nothing is read
Expected: &quot;American Samoa&quot; is read

4. Hit &quot;arrow down&quot;, this should select the &quot;California&quot; option

Actual: &quot;American Samoa&quot; is read
Expected: &quot;California&quot; is read</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1271956</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-01-31 15:46:47 -0800</bug_when>
    <thetext>&lt;rdar://problem/30297449&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1271962</commentid>
    <comment_count>2</comment_count>
    <who name="Kaelig">kaelig</who>
    <bug_when>2017-01-31 15:51:09 -0800</bug_when>
    <thetext>Note that this makes combobox/listbox almost unusable to VoiceOver users.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1271963</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-01-31 15:51:27 -0800</bug_when>
    <thetext>&lt;rdar://problem/30297583&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1287279</commentid>
    <comment_count>4</comment_count>
    <who name="Kaelig">kaelig</who>
    <bug_when>2017-03-13 12:10:23 -0700</bug_when>
    <thetext>A somewhat similar issue was reported in Chrome as well: https://bugs.chromium.org/p/chromium/issues/detail?id=666049</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1384478</commentid>
    <comment_count>5</comment_count>
    <who name="James Craig">jcraig</who>
    <bug_when>2017-12-22 09:09:36 -0800</bug_when>
    <thetext>*** Bug 167680 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1384486</commentid>
    <comment_count>6</comment_count>
    <who name="James Craig">jcraig</who>
    <bug_when>2017-12-22 09:47:58 -0800</bug_when>
    <thetext>&lt;rdar://problem/30297449&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1459482</commentid>
    <comment_count>7</comment_count>
    <who name="Michael Berger">michael</who>
    <bug_when>2018-09-13 12:39:33 -0700</bug_when>
    <thetext>Just to note this is still happening in Safari + VoiceOver, but Chrome + Safari handles it properly.

https://webkit.org/blog-files/aria1.0/combobox_with_live_region_status.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1517737</commentid>
    <comment_count>8</comment_count>
    <who name="Bryan Garaventa">b</who>
    <bug_when>2019-03-18 10:03:48 -0700</bug_when>
    <thetext>I&apos;m still getting reports that this is still broken on the example at
http://whatsock.com/tsg/Coding%20Arena/ARIA%20Comboboxes/ARIA%20Comboboxes%20(Native%20Inputs,%20Editable%20with%20Substring%20Match)/demo.htm

Can I get a status update on where this currently stands in dev?

Thanks,
Bryan</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1517763</commentid>
    <comment_count>9</comment_count>
    <who name="Eric Liang">ericliang</who>
    <bug_when>2019-03-18 10:34:01 -0700</bug_when>
    <thetext>This will be fixed in VoiceOver</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1554111</commentid>
    <comment_count>10</comment_count>
    <who name="Michael Prentice">splaktar</who>
    <bug_when>2019-07-18 20:09:35 -0700</bug_when>
    <thetext>https://webkit.org/blog-files/aria1.0/combobox_with_live_region_status.html is working well for me with Safari Version 12.1.1 (14607.2.6.1.1) and macOS 10.14.5 (18F203).

It also seems to be working well with Chrome 75.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1554128</commentid>
    <comment_count>11</comment_count>
    <who name="Kaelig">kaelig</who>
    <bug_when>2019-07-18 22:18:22 -0700</bug_when>
    <thetext>Michael, I have exactly the same setup as you and the bug is still reproducible on my side.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600948</commentid>
    <comment_count>12</comment_count>
    <who name="iammatthew2">mvilleneuve</who>
    <bug_when>2019-12-20 14:46:08 -0800</bug_when>
    <thetext>This is currently broken for me on Mojave 10.14.6 with Safari 13.0.4</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1658108</commentid>
    <comment_count>13</comment_count>
    <who name="James Craig">jcraig</who>
    <bug_when>2020-06-01 16:40:58 -0700</bug_when>
    <thetext>&lt;rdar://problem/63849438&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1701138</commentid>
    <comment_count>14</comment_count>
    <who name="Diego Fernandez">diegof79</who>
    <bug_when>2020-10-23 13:44:47 -0700</bug_when>
    <thetext>These examples use aria-activedescendant and they work as expected in Safari+VO:
https://www.w3.org/TR/wai-aria-practices/examples/listbox/listbox-collapsible.html
https://pattern-library.dequelabs.com/components/selects

Why they work? Because, in addition to active descendant they set aria-selected to active option.

I found that when I do that in my custom dropdown work in VO+Safari (Safari Version 14.0 15610.1.28.1.9, 15610 / macOS 10.15.7 (19H2)).

My understanding of aria-selected is that it indicates the current selection - not the active item. So this looks like a bug.

The w3 example selects uses the active item = value pattern, so aria-selected has the right semantics. 
The deque example requires an explicit selection, so aria-selected seems to be wrong there.

I tested an implementation without aria-selected in Chrome (86.0.4240.111)  and Firefox (83.0b3), and both announce the active descendant when I move between list items.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1702973</commentid>
    <comment_count>15</comment_count>
    <who name="Elliot Dickison">ejdickison</who>
    <bug_when>2020-10-29 22:03:48 -0700</bug_when>
    <thetext>I ran into this issue today. VoiceOver (macOS 10.14.6) + Chrome (86.0) worked fine but VoiceOver (macOS 10.14.6) + Safari (14.0) didn&apos;t announce anything when the active descendant changed. I had aria-activedescendant set correctly on the listbox element *and* aria-selected set on the active descendent element as others have suggested.

I was able to work around the issue by removing an extra wrapper element that I had placed inside the listbox element for styling purposes (all of the listbox option elements were children of this wrapper, not of the listbox itself). When I removed the wrapper and moved the option elements up in the DOM tree to be *direct* children of the listbox Safari started announcing the active descendant. The WAI-ARIA Authoring Practices is pretty clear that the active descendant just needs to be a descendant, not a direct child.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1769056</commentid>
    <comment_count>16</comment_count>
    <who name="James Craig">jcraig</who>
    <bug_when>2021-06-11 13:35:03 -0700</bug_when>
    <thetext>As mentioned in #c10 this has been resolved and working in VoiceOver for a couple years, so I&apos;m closing this orphaned bug report as Resolved. 

The other examples people have linked since then are almost certainly related but different bugs. Event if they&apos;re all about combobox+activedescendant, the markup or rendering instances are likely different. The best approach to get those resolved is to file a new bug for reduced test cases that you find are not working... I&apos;ll try to do that with some of these now.

Note: If I can&apos;t verify the linked instance bug on my system, but you&apos;re still seeing it on yours, there may be other factors at play. Include software versions, etc. Potentially attach VoiceOver preferences if it work in the default config but not with your preferred config.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1769065</commentid>
    <comment_count>17</comment_count>
    <who name="James Craig">jcraig</who>
    <bug_when>2021-06-11 13:55:09 -0700</bug_when>
    <thetext>FWIW @Kaelig, I&apos;m looking at a bug that resolved this. Prior to the fix, this example did not work for me at all, but it does now. If you&apos;re still seeing this specific test case unresolved on your system, could you ping me offline? We can investigate what&apos;s different about the configs. Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1785980</commentid>
    <comment_count>18</comment_count>
    <who name="Leslie">leslie.harper</who>
    <bug_when>2021-08-20 14:22:37 -0700</bug_when>
    <thetext>I&apos;m looking at a slight variant of this bug that seems to be happening when aria-haspopup is set to &quot;grid&quot;. I&apos;m not sure if that difference from the original example is the cause but the bug can be reproduced faithfully with this example page from w3c:

https://www.w3.org/TR/wai-aria-practices-1.2/examples/combobox/grid-combo.html

When navigating through the options in the list using the arrow keys absolutely nothing is announced.

I can confirm that it works with VoiceOver/Chrome as well as VoiceOver/IOS Safari (14.1)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1819393</commentid>
    <comment_count>19</comment_count>
    <who name="Naman Goel">naman34</who>
    <bug_when>2021-12-01 13:39:34 -0800</bug_when>
    <thetext>This is still an issue and not fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1860623</commentid>
    <comment_count>20</comment_count>
    <who name="Dhawal">dkote</who>
    <bug_when>2022-04-12 02:22:27 -0700</bug_when>
    <thetext>We are still facing this issue in Safari.

Here&apos;s jsfiddle link if you want to check the implementation - https://jsfiddle.net/f5Larbnk/19/

Note that voiceover in the above fiddle works fine in Firefox, Chrome when active-descendant is updated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2038831</commentid>
    <comment_count>21</comment_count>
    <who name="Scott Vinkle">scott.vinkle</who>
    <bug_when>2024-05-30 11:55:58 -0700</bug_when>
    <thetext>This bug still remains. (macOS 14.5, Safari 17.5)

I&apos;ve found if you include aria-owns alongside aria-controls pointing to the same IDREF, the aria-activedescendant item will be announced as expected.

Ex., Shopify Checkout address autocomplete.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2042493</commentid>
    <comment_count>22</comment_count>
    <who name="">jesse.greenberg</who>
    <bug_when>2024-06-21 13:08:01 -0700</bug_when>
    <thetext>This is still a bug, aria-activedescendent is broken. Tested MacOS 14.5.  Workarounds with aria-owns and aria-controls did not work for us. These examples do not work with Safari: https://www.w3.org/WAI/ARIA/apg/patterns/combobox/examples/grid-combo/ and https://www.w3.org/WAI/ARIA/apg/patterns/combobox/examples/combobox-autocomplete-list/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2056372</commentid>
    <comment_count>23</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2024-08-29 14:03:49 -0700</bug_when>
    <thetext>This problem is addressed in MacOs Sequoia 15. Please re-test with a recent build of MacOS 15.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>