In Open UI there’s been some discussion about what default ARIA role the proposed
<popupdialog> element should have, if any…
<popupdialog> element is a top-layer element that anchors to another element. Semantically, that’s a lot like a non-modal
dialog, but people will probably use it incorrectly as a
combobox, etc. which are not a
dialog and have their own more appropriate semantics. Should it be a
dialog? Or should it be nothing like a
<div> or a
<span> but sits on the top layer of a website? Should we have other (similar) elements for those specific use cases? Is
display: popup the best primitive here?
All good questions and I’m sure someone smarter than me will provide an answer.
What struck me about it all was how ARIA wants to be specific. It asks elements “Who are you deep down in your soul?” It’s a sentry at the gate, asking elements to identify themselves and if the element belongs to or fits within the known lexicon then there are well-defined interaction patterns that work with the Assistive Technology. It’s all useful and makes sense if you consider aural interfaces.
HTML, in my view, tends to be more general and permissive. A chill uncle.
<div>? Sure, that can be a
<article>? If you think that’s the article, great, let’s start there.
<video>? Sure, send me some sources and I’ll do my best otherwise I’ll do nothing. Did you use a link for a
<button> and a
<button> for a link? Aww geeze, Rick. Wish you hadn’t done that. There’s right and wrong ways to do HTML, but there’s often more than one path to a solution. HTML provides a lot of building blocks, spicy divs and spicy spans, sometimes with built-in functionality and semantics, and other times the functionality it’s all bring-your-own.
There’s a tension there, but I think that’s what you get in a robust language designed to be liberal in what it accepts but conservative in what it does.