-
Notifications
You must be signed in to change notification settings - Fork 2.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Read-only state for buttons? #10125
Comments
What does "read-only" mean for a button, and how is it different from the existing disabled state? Buttons are not typically thought of as "writable" in the first place. |
I guess I'd say it means 'navigable but not actionable'. What I am seeing is an increasing number of teams putting information on disabled buttons via hover -- explanations of why it cannot be clicked right now, or how to resolve the disabled state. So it's a natural development that designers should start to seek ways of surfacing information about the interaction to the user. The problem is that disabled buttons should not react to hover, and even if they did, they are not in the keyboard order, and so information on hover is withheld from users reliant on keyboard. I've seen teams try things like altering the button's function (i.e., keep it enabled, but instead of doing its intended action, it opens an explanatory overlay; sometimes they'll try changing the button's label). Others have explored putting text near the button explaining why it can't be used. Neither are particularly optimal. |
Having a UI react to input, even with an error, is nearly always a better experience for users than not responding at all |
I can see the natural progression from a disabled button - and the value of AT discoverability of these types of buttons. But, designers and developers would still have the work of telling people why it's not a fully functioning button, right? Or are we coming up with a solve for the remaining issues? |
is marking a button as read only going to actually solve anything though? messaging as to why the button doesn't do what the user wants/expects would still need to be provided. being read only wouldn't solve that. Arguably what could be done now is not assigning an event to the button / preventing default until whatever condition is met - and still provide the necessary messaging / alternate behavior to render that messaging. |
This sounds like an anti-pattern. For one, hover states are not always discoverable:
and as @lbeaze said:
|
It is one method, yes. It may be common for some sites and users, but there are still plenty of places that don't do it (and rely on error messages and/or preventDefault and/or other methods).
If by "not allowed" you mean WCAG has an SC that says how not to do hover content on anything as well as another one saying it must be keyboard triggerable, sure?
Ah, then SC 2.1.1. |
I was hoping there was something saying disabled buttons are inert, but on discussion, realize that is not the case -- a title attribute on a disabled button can be revealed by hover. Another example of inequitable interaction between pointers and keyboard. I don't believe what I'm describing would fail 1.4.13 , but yes, I will revert to failing it against 2.1.1. Thanks. |
When I just referred another person to this issue and its response/result, I realized I never responded to @scottaohara's question. If you go back and look at my list of problems in the original issue, I would say 'yes' it addresses a number of those issues:
|
None of those items (especially item 2) seems to be something that can only be solved by making a button read-only. So to item 5, it is not obvious to me how this would make for a more equitable experience unless you think making a button disabled is the only other option available (versus messaging and not submitting until conditions are met). |
To be clear, @aardrian , I'm not saying making buttons read-only is the only solution. I was responding to @scottaohara's question about whether a read-only button would solve any of the desired outcomes. I also want to emphasize that I'm not actively advocating read-only buttons with teams. Quite the opposite. What's occurring is I am frequently assailed with teams telling me they want to do it. Here's the latest example that precipitated me posting something else to this closed issue.
The user said "input" here, and I'm following up to understand the entire interaction. One I've seen, which might be getting referred to here, is to do with user feedback on AI-generated responses in a chat. It's something that is getting traction as a fairly common interaction to improve transparency and provide agency. There are obvious considerations: 1) the thumbs up/down icons add more time on task for keyboard users; 2) once a user has submitted feedback on that piece of generated content, the business rule is they cannot alter the feedback. So, if the thumb buttons become disabled, a sighted user can see they've become unavailable (and also see he/she activated one) but for a screen reader user, the buttons are removed from the interaction. Again, I emphasize that I understand there are other ways of tackling this problem, right back to whether a bunch of thumbs in a chat UI is the most elegant way to allow user feedback on AI. |
Gotcha. Thanks for the added context. |
What is the issue with the HTML Standard?
We're seeing more cases where teams want to provide a button with a recognizable read-only state.
Here are the outcomes desired:
At the moment, we have not discovered a consistent way to achieve those 4 objectives. We'd appreciate any thoughts on either 1) why it's important that there should not be a discernible read-only state for a button, or 2) other recommendations you have for dealing with the above desired outcomes.
The text was updated successfully, but these errors were encountered: