Need a generic "Button" reporting element

HI all - a question for you. I've created interactive protocols using Text components, using '' as the actual content of the component with HTML tags turned on. I can then use an onclick event handler to handle the click (e.g. run a protocol function, for example). With a little additional JavaScript, I can control the button disabled state to provide a nice UI for my users (can't click the button twice in a row for example) while the protocol function executes.

The problem is that this only works on IE - Chrome, Firefox and the new Edge browser don't properly change the visible state of the button when I set the buttonElement.disabled = true in my JS code. And IE is being "disabled" on our company Win build around the end of the year, replaced with Edge.

I've looked through the HTML that's emitted from my protocol and the text component creates a

element with all the HTML attributes, and a child node is the