What about forgetting the whole notion of a "default button" and the only effect of setting the default property to true being that the button will start as focused?
So I add a question: 3) Would anyone miss the "default button"? Tomas On Tue, Jun 7, 2016 at 5:47 PM, Jonathan Giles <[email protected]> wrote: > Hi all, > > One thing I've been looking into recently is the issue of what the Enter > key should do when it is pushed with regards to buttons in a UI where one > of those buttons is a 'default' button. There are number of Jira issues on > this topic, and I wanted to poll the community to understand its opinions. > > The current situation is that the Enter key does not fire the focused > Button. The Enter key is reserved for firing the 'default' Button in the UI > (i.e. if someone has created a Button instance with the default property > set to true). A default button is rendered slightly differently (in Modena > it is blue for example). To fire the focused Button, the user must press > the Space key. > > Tom Schindl filed a bug (JDK-8139510) that is a good example of the > 'problem' this creates. In the bug report, a dialog is shown to the user. > In the dialog is an OK button and a Cancel button. The OK button has been > made the 'default' button. Regardless of which button has focus, the Enter > key always fires the OK button. The only way to fire the Cancel button is > via the Space key. This can be very confusing for users who have tabbed > specifically to the 'Cancel' button and then pressed the Enter key, only to > find they unwittingly fired the 'OK' action. > > To me this has always been a little counter-intuitive, because of my > heritage as a long-time Windows user. I believe Linux is much the same as > Windows. For others who grew up on Mac, I'm less sure on what people expect > (but it seems to be that the Enter key fires the default button, not the > focused button, i.e. JavaFX current behavior matches what is expected on OS > X). > > What I'm proposing we do is to change the behavior as follows: > > 1) On OS X we do not change behavior at all - we keep the current 'Enter > means default' and 'Space means focus' semantics. > > 2) On non-OS X platforms, we change the behavior so that Enter (and Space) > will fire the _focused_ key, if one is focused. If no Button is focused > (e.g. focus is in a TextField, etc), then Enter will work as it currently > does and fire the default button, if one is specified. In short, default > buttons will still be rendered blue to hint to the user that they are the > default button, but they will be less prevalently fired by Enter key > presses - only when they also have focus. > > The two questions that I have are: > > 1) Will this confuse users when there is a behavior change (and > presumably, this change will be made in JDK 9 and not backported to JDK 8). > If it will confuse users, is it still the right thing to do? > > 2) Do we want to have different behaviors for OS X and non-OS X? I'm a > newly inducted member into the cult of Mac, and I don't yet have all my > bearings sorted out, so I don't have a strong opinion here. > > Your thoughts, as always, are appreciated. > -- Jonathan >
