<?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>166714</bug_id>
          
          <creation_ts>2017-01-04 21:28:00 -0800</creation_ts>
          <short_desc>AX: (iOS only) Some programmatic DOM changes are not noticed by VoiceOver</short_desc>
          <delta_ts>2025-11-20 15:35:08 -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>Safari 10</version>
          <rep_platform>iPhone / iPad</rep_platform>
          <op_sys>iOS 10</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></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="Jonathan Deutsch">jonathan</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>balrajsjohal</cc>
    
    <cc>jcraig</cc>
    
    <cc>kdunagan</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1264007</commentid>
    <comment_count>0</comment_count>
    <who name="Jonathan Deutsch">jonathan</who>
    <bug_when>2017-01-04 21:28:00 -0800</bug_when>
    <thetext>If the DOM is programmatically changed, these changes are not picked up by VoiceOver.

Example Code:

=====================

&lt;div id = &quot;item1&quot;&gt;item 1 (not hidden)&lt;/div&gt;
&lt;div id = &quot;item2&quot; aria-hidden=&quot;true&quot;&gt;item 2 (hidden via HTML)&lt;/div&gt;
&lt;div id = &quot;item3&quot;&gt;item 3 (hidden via JS after 2s)&lt;/div&gt;
&lt;div id = &quot;item4&quot;&gt;item 4 (not hidden)&lt;/div&gt;

&lt;script&gt;

function changeHidden() {
	document.getElementById(&quot;item3&quot;).setAttribute(&quot;aria-hidden&quot;, &quot;true&quot;);
} 

window.setTimeout(changeHidden, 4000);

&lt;/script&gt;

=====================

After 4 seconds, item3 should no longer be navigable via swiping left/right in voice over because it is set to aria-hidden=true. However it still is.  Some actions like double-tapping will get it to be properly hidden from navigation.

Likewise, simply changing innerHTML may have the same result:

=====================

&lt;div id = &quot;item1&quot;&gt;item 1 (not hidden)&lt;/div&gt;
&lt;div id = &quot;output&quot;&gt;&lt;/div&gt;

&lt;script&gt;

function changeOutput() {
	output.innerHTML = &quot;changed&quot;;
} 

window.setTimeout(changeOutput, 2000);

&lt;/script&gt;

=====================

VO does not see the output div.

This affects dynamic sites, like those generated by Tumult Hype.

I am reproducing on iPad Pro with iOS 10.2.1 via:
1. Enabling VoiceOver
2. Swiping to the right</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1264008</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-01-04 21:28:12 -0800</bug_when>
    <thetext>&lt;rdar://problem/29877887&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1264031</commentid>
    <comment_count>2</comment_count>
      <attachid>298071</attachid>
    <who name="James Craig">jcraig</who>
    <bug_when>2017-01-05 00:06:23 -0800</bug_when>
    <thetext>Created attachment 298071
test case</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1264032</commentid>
    <comment_count>3</comment_count>
    <who name="James Craig">jcraig</who>
    <bug_when>2017-01-05 00:10:22 -0800</bug_when>
    <thetext>I can reproduce in iOS. Behavior is correct in macOS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1629335</commentid>
    <comment_count>4</comment_count>
    <who name="Kim">kdunagan</who>
    <bug_when>2020-03-12 13:30:23 -0700</bug_when>
    <thetext>Is there any movement on this issue? We&apos;ve been experiencing this issue on IOS 10+</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2160394</commentid>
    <comment_count>5</comment_count>
    <who name="">balrajsjohal</who>
    <bug_when>2025-11-20 15:35:08 -0800</bug_when>
    <thetext>Hey, is this issue planned to be addressed soon? We can reproduce on the latest version of iOS 18 which is a significant amount of our userbase</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>298071</attachid>
            <date>2017-01-05 00:06:23 -0800</date>
            <delta_ts>2017-01-05 00:06:23 -0800</delta_ts>
            <desc>test case</desc>
            <filename>wk166714.html</filename>
            <type>text/html</type>
            <size>560</size>
            <attacher name="James Craig">jcraig</attacher>
            
              <data encoding="base64">PCEtLSBleGFtcGxlIDEgLS0+Cgo8ZGl2IGlkID0gIml0ZW0xIj5pdGVtIDEgKG5vdCBoaWRkZW4p
PC9kaXY+CjxkaXYgaWQgPSAiaXRlbTIiIGFyaWEtaGlkZGVuPSJ0cnVlIj5pdGVtIDIgKGhpZGRl
biB2aWEgSFRNTCk8L2Rpdj4KPGRpdiBpZCA9ICJpdGVtMyI+aXRlbSAzIChoaWRkZW4gdmlhIEpT
IGFmdGVyIDRzKTwvZGl2Pgo8ZGl2IGlkID0gIml0ZW00Ij5pdGVtIDQgKG5vdCBoaWRkZW4pPC9k
aXY+Cgo8c2NyaXB0PgoKZnVuY3Rpb24gY2hhbmdlSGlkZGVuKCkgewoJZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoIml0ZW0zIikuc2V0QXR0cmlidXRlKCJhcmlhLWhpZGRlbiIsICJ0cnVlIik7Cn0g
Cgp3aW5kb3cuc2V0VGltZW91dChjaGFuZ2VIaWRkZW4sIDQwMDApOwoKPC9zY3JpcHQ+CgoKPCEt
LSBwYXJ0IDIgLS0+Cgo8ZGl2IGlkID0gIm91dHB1dCI+PC9kaXY+Cgo8c2NyaXB0PgoKZnVuY3Rp
b24gY2hhbmdlT3V0cHV0KCkgewoJb3V0cHV0LmlubmVySFRNTCA9ICJjaGFuZ2VkIjsKfSAKCndp
bmRvdy5zZXRUaW1lb3V0KGNoYW5nZU91dHB1dCwgNDAwMCk7Cgo8L3NjcmlwdD4=
</data>

          </attachment>
      

    </bug>

</bugzilla>