Thanks, William!
The aria-disabled attribute communicates to AT that the button is "unavailable" but does nothing for non-AT users. I'm trying to find solutions for both.
In all your "this assumes" statements, you appear to be missing something: The only thing I'm assuming is that there are a myriad of users out there who using the web differently. Some have vision challenges, some dexterity, some cognitive, some memory, etc.
Some will understand the purpose of a button and some will not. With disabled buttons, some will perceive them and some will not. I'm trying to find solutions that are available to the maximum number of users - that's accessibility.
Thanks!