Command and control

I���ve been banging on for a while now about how much I���d like a declarative option for the Web Share API. I was thinking that the type attribute on the button element would be a good candidate for this (there’s prior art in the way we extended the type attribute on the input element for HTML5).

I wrote about the reason for a share button type as well as creating a polyfill. I also wrote about how this idea would work for other button types: fullscreen, print, copy to clipboard, that sort of thing.

Since then, I���ve been very interested in the idea of ���invokers��� being pursued by the Open UI group. Rather than extending the type attribute, they’ve been looking at adding a new attribute. Initially it was called invoketarget (so something like button invoketarget="share").

Things have been rolling along and invoketarget has now become the command attribute (there���s also a new commandfor attribute that you can point to an element with an ID). Here���s a list of potential values for the command attribute on a button element.

Right now they���re focusing on providing declarative options for launching dialogs and other popovers. That���s already shipping.

The next step is to use command and commandfor for controlling audio and video, as well as some form controls. I very much approve! I love the idea of being able to build and style a fully-featured media player without any JavaScript.

I���m hoping that after that we���ll see the command attribute get expanded to cover JavaScript APIs that require a user interaction. These seem like the ideal candidates:

button command="share"button command="fullscreen"button command="print"button command="copy"button command="install"

There’s also scope for declarative options for navigating the browser’s history stack:

button command="back"button command="forward"button command="refresh"

Whatever happens next, I’m very glad to see that so much thinking is being applied to declarative solutions for common interface patterns.

 •  0 comments  •  flag
Share on Twitter
Published on March 20, 2025 08:23
No comments have been added yet.


Jeremy Keith's Blog

Jeremy Keith
Jeremy Keith isn't a Goodreads Author (yet), but they do have a blog, so here are some recent posts imported from their feed.
Follow Jeremy Keith's blog with rss.