title: Why does Safari ignore transition events like transitionend?
body: <p>I've added a simple <code>ontransitionend</code> listener. The code works in Firefox and Chrome, but doesn't in Safari (desktop + iOS). I've tried syntax variations and used AlpineJS (<a href="https://codepen.io/kslstn/pen/KKZQxRM" rel="nofollow noreferrer">Codepen</a>) to do the same. But the problem appears to be with Safari not reacting at all to transition events. What could be happening here?</p>
  <p><div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false">
  <div class="snippet-code">
  <pre class="snippet-code-js lang-js prettyprint-override"><code>const el = document.getElementById('hasTransition');
  el.ontransitionend = () =&gt; {
    document.getElementById('message').classList.remove('hidden');
  };</code></pre>
  <pre class="snippet-code-css lang-css prettyprint-override"><code>#hasTransition{
    transition: all linear 200ms;
  }
  .hidden{
    opacity: 0;
  }</code></pre>
  <pre class="snippet-code-html lang-html prettyprint-override"><code>&lt;button onclick="el.classList.remove('hidden')"&gt;
    Click to trigger a transition
  &lt;/button&gt;
  &lt;p id="message" class="hidden"&gt;We've detected a transition.&lt;/p&gt;
  &lt;p id="hasTransition" class="hidden"&gt;✨ I'm visible ✨&lt;/p&gt;</code></pre>
  </div>
  </div>
  </p>