Over in web-bug #9726, there’s an interesting issue reported against glitch.com (which is already fixed because those peeps are classy):
Basically, they had an HTML <button>
that when clicked would display:block
a descendent <dialog>
element that contained some hyperlinks to help you create a new project.
The simplest test case:
<button>
<a href="https://example.com">do cool thing</a>
</button>
Problem is, clicking on an anchor with an href
inside of a button does nothing in Firefox (and Opera Presto, which only 90s kids remember).
What the frig, web browsers.
But it turns out HTML is explicit on the subject, as it often is, stating that a button’s content model must not have an interactive content descendant.
(and <a href>
is totally, like, interactive content, itsho*)
Soooo, probably not a good idea to follow this pattern. And who knows what it means for accessibility.
The fix for glitch is simple: just make the <dialog>
a sibling, and hide and show it the same way.
* in the spec’s humble opinion