<html>
    <head>
      <base href="https://bugs.webkit.org/" />
    </head>
    <body>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - AX: Investigation: Determine if document history pushState() and replaceState() should trigger additional AX notifications"
   href="https://bugs.webkit.org/show_bug.cgi?id=155399#c3">Comment # 3</a>
              on <a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - AX: Investigation: Determine if document history pushState() and replaceState() should trigger additional AX notifications"
   href="https://bugs.webkit.org/show_bug.cgi?id=155399">bug 155399</a>
              from <span class="vcard"><a class="email" href="mailto:jcraig&#64;apple.com" title="James Craig &lt;jcraig&#64;apple.com&gt;"> <span class="fn">James Craig</span></a>
</span></b>
        <pre>A few negative case examples from some internal discussion:

&quot;&quot;&quot;
AK: Browse to <a href="http://www.apple.com/shop/buy-iphone/iphone5s">http://www.apple.com/shop/buy-iphone/iphone5s</a>
Select the appropriate options e.g. Space Gray, 16GB, Unlocked.
The URL updates to <a href="http://www.apple.com/shop/buy-iphone/iphone5s/16gb-space-gray">http://www.apple.com/shop/buy-iphone/iphone5s/16gb-space-gray</a>

It’s appropriate to tell the user that the URL changed (even though this is replaceState) but definitely not appropriate to move their focus.

...
With pushState, we would rarely use a hash in the URL. That’s the fallback old style behaviour, where you need no .history() object. We would instead use a “real” URL that can be shared, bookmarked, and so on - and reacted to server-side (which is great SEO) rather than detecting the hash via JS.
&quot;&quot;&quot;

and

&quot;&quot;&quot;
CS: While yes, devs should be moving focus correctly, I fear that it would degrade the UX for AT users to have focus jumped for sites that already have poor AX.

Also, I can see having fixed timings causing a lot of issues on slow networks, and just being hard to debug (race conditions). E.g. I might update the URL on user click, but it takes longer to get the new content than ~500ms.
&quot;&quot;&quot;

I will close as WORKFORME if there are no objections or strong counterpoints.</pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are the assignee for the bug.</li>
      </ul>
    </body>
</html>