RB 2010 R2.1 Has A Nasty Windows Bug

Be aware that RB 2010 R2.1 has a nasty Windows-only bug that might affect you.  It seems that the keyboard accessibility for pushbuttons (and possibly other controls) no longer works properly.

To duplicate, put two pushbuttons on a window.  Put a message box in the Action event saying which one has been pushed.

Test it with the mouse.  Works fine.  Now tab to each pushbutton and press the spacebar.  Works fine.

Now, tab to each one and press the Return or Enter key.  Nothing.  If you happen to have a default pushbutton the Enter/Return key will activate that button regardless of where the focus is.

Nasty bug that leads the average Windows user to curse your name in vain if they rely on the keyboard to navigate.  I spent hours trying to figure this one out because it manifests itself in the MessageDialog class too.

Yeah, I’m a little pissed.   I have to revert to RB 2010 R1 where it does not manifest itself.  The hard deadline for the project I’m working on is today.  Gives me a black eye for a problem outside of my control.

For those that care, Feedback ID 12626

25 thoughts on “RB 2010 R2.1 Has A Nasty Windows Bug

  1. Amazing. Geoff is very keen on getting stuff moved forwarded. I see him reading our blogs and twitter messages, editing the documentation wiki and checking bug reports. That’s cool 🙂

  2. @Geoff Perlman
    Geoff, that’s great, really. It does *absolutely* nothing for me. My client nearly lost their federal contract because of this bug and my only solution is to revert to an older version of RB?

    Am I pissed? You bet! I’m amazed that no one caught it before now. How does it slip by testing during the 90 day release cycle? How do you break one of the basic UI features of Windows and not know about it?

    My recommendation is that you all stop using the Mac version of RB for a month and live in Windows 100% of the time. I think you’ll find a number of problems that people just deal with in Windows.

    You want to to get more RB users? Make RB for Windows a stellar application in Windows and kiss the behinds of Windows users a little. Mac’s may be cooler, but the last time I looked there are still way more Windows users out there than Mac.

  3. First, as a temporary workaround, you should be able to trap for the return/enter keys in the Keydown event. Obviously you have found a workaround by reverting back to R1. Having said that, I can see that it would be annoying so we are working on fixing it right now for R3. This is clearly a change in behavior from R1 to R2 and appears to be a side effect of another bug fix. How did this get missed in testing? Well, first of all, it’s a pretty subtle difference. It can only be seen when the focus is on a non-default pushbutton and you use the Return or Enter keys to activate it. And I don’t think we received a single report during the beta process about it. But we will get it fixed for R3.

    Another reason I think this was missed is that the behavior makes no sense. It’s totally inconsistent. If the focus is on a regular pushbutton, Return/Enter activates that button. If the focus is on any other control, Return/Enter activates the default button (if there is one). Who came up with that crazy idea? Be consistent. Always activate the control with the focus on only activate the default button. Otherwise, you’re asking users to learn a set of inconsistent rules. Sure, they will eventually learn them, but an inconsistent UI is not good for users. I’m not blaming you Bob. This is a Windows UI issue. But again, it is what it is, so we will get this fixed for R3.

  4. I’m not sure it’s possible to make a stellar Windows application? =P

    I think you may have been a bit rough on Geoff, I mean kudos to him for a) reading your blog, b) verifying its a bug, c) having the kahunas to do something about it and respond.

    Not sure after you flipped on him he will do that again, and that’s sad. I mean what else would anyone be other than pissed when discovering a bug? REAL Studio certainly has it’s issues, but they aren’t lacking common sense.

    Glad you found a solution though. I tend not to upgrade unless there’s something I need, or a bug fix for a specific case I was having. Not worth the hassles… what did you require in R2? Obviously not much if you could downgrade so easily… maybe you should do more testing on your side Bob?

  5. Hi all

    One application that I had heard which will test GUI’s effectively is testplant. I have not got a copy yet … I am working out a way to justify the cash flow.

    http://www.google.com.au/search?hl=en&client=firefox-a&hs=Cm0&rls=org.mozilla%3Aen-US%3Aofficial&q=testplant&aq=f&aqi=g-s1g1g-s3g2g-s1g1g-s1&aql=&oq=&gs_rfai=&gs_upl=1408%2C136%2C4%2C0%2C149%2C202%2C0%2C1%2C2

    It’s not cheap, but cheaper than paying for beta testers.

    Regards

    Keith

  6. @Geoff Perlman
    The traditional Windows idiom is that when a button gets the focus, it becomes the default button and the ‘regular’ default becomes non-default (things go back to normal when the focus moves on). The visuals in a native Windows UI reflect this, so it’s hardly ‘crazy’.

  7. Chris, I know the visuals give you a subtle indicator of this. However, I still think it’s crazy. It’s crazy because it’s not consistent. If radio buttons, checkboxes and other controls that don’t have a cursor and have a toggleable state reacted the same way I would be OK with it because at least it’s consistent. But to do this with pushbuttons only makes no sense. It’s neither obvious nor intuitive. Sure, people will eventually learn it but I’m sure many people get confused by it until they do learn it.

  8. @Geoff Perlman
    It’s been that way since Window 3.1. It’s been consistent, in Windows, since 1992 when most PC’s didn’t ship with a mouse.

    Oh, this bug affects the MessageDialog class as well which is where I first discovered it.

  9. Oh, I’m sure it’s been consistently inconsistent throughout the history of Windows. That’s not hard to believe. My point is, it should work for all buttons not just pushbuttons. That’s the inconsistency. I can see users wondering why it works sometimes and not others. And I’m sure it results in unexpected behavior for those that haven’t figured out the rule yet.

    It’s good to know that it affects MessageDialog as well. I’ll make sure we check that.

  10. @Geoff Perlman
    Trust me that I spent many hours tracking this down. Worked fine on the Mac, worked fine in Windows when using the mouse, and worked fine when pressing SpaceBar (I didn’t even know that was an option – go figure). It wasn’t until hitting return/enter that I found it and even then I didn’t believe it until I had exhausted other avenues (and a small example project duplicating the issue).

    After getting some much needed sleep I apologize for not being very nice. Lot’s of pressure and exposure on this one. At least I had the option of reverting otherwise I would have been in deep doodoo.

  11. @Geoff — as the long-time Windows advocate for REALbasic, I am incredibly disappointed with this thread. Obviously, bugs happen, and while it’s disappointing for a major bug like this to slip through all of the testing that takes place, it still happens. You owned up to it as being a bug, and said it’ll be looked into and fixed. That’s a good thing! But for you to then try to talk down the bug as just being “crazy” Windows UI is insulting and demonstrates your bias towards the Mac. You’re not a Windows user, and you love your Mac. That’s fine. But you’re the CEO of a cross-platform company too — making disparaging statements about a supported platform tends to make people question your commitment to that platform.

  12. @ Aaron – This has nothing to do with Mac or Windows. It’s just poor UI and that’s all. I have seen poor UI on the Mac too. UI should be consistent. This is a case where it’s not. I don’t thinks it’s good UI but it’s only made worse by the lack of consistency. At least the use of the spacebar for the same purpose is consistent.

  13. @Geoff — I think you missed my point. You stated “Another reason I think this was missed is that the behavior makes no sense.” No offense, but I don’t care if you understand why the behavior is the way it is. The fact is: it is the behavior from the OS vendor and has been consistent for over 20 years. Saying “well, we must have missed it because it makes no sense” doesn’t give me confidence that you are able to put out a quality release for Windows.

    Being dismissive is counterproductive. Just admit there’s a bug, assure us that it’ll be fixed, put processes in place to ensure it doesn’t happen again, and leave it at that. Making value comments as to the sensibility of the OS vendor’s decision only makes you (as the CEO) look like you either don’t know or don’t care about what it takes to make a quality Windows application. After all, it doesn’t matter whether you like the vendor’s decisions or not. REALbasic is meant to make native applications on multiple platforms and that can’t be done if you ignore the OS vendor’s decisions about their own ecosystem (for any platform!).

  14. 1. According to feedback, this particular bug is marked as fixed. Hurrah!

    2. Windows GUI is inconsistent and has non-ergonomic elements. The same applies to varying degrees to Apple OS, Gnome and KDE. However, it is for RS to make sure that the RB implementation of UI on each platform matches the specifications for that UI, or at least that it can do so by default (an option for a programmer to “rationalise” controls for their program is a bonus)

    3. Sympathy to Bob for the original panic. Kudos to Geoff for putting the hands up, but Aaron is right – qualifying it with an explanation about why Windows is weird looks like trying to make an excuse (even if that is not what it is). Having spent untold hours on API calls to do “simple” things, and fighting with ActiveDirectory to get it to play nice with “proper” systems, I can well believe Windows is the spawn of the devil, but since we need to use it you can at least make sure the pentagrams are well made. 😉

  15. @ Aaron – I do understand your point. And regardless of my personal opinion about the UI, it is the way Windows works and we should support it. Hence, I identified it as an important bug that we should fix sooner rather than later. Poor UI (regardless of where it occurs) irks me.

  16. @Geoff Perlman
    Windows is what it is and with the number of companies now wanting to support Mac OS X there is tremendous opportunity to obtain new RB users that are primarily Windows-based. Therefore I would think that finding more ways to bring Windows users into the RB nest is a good thing. Dismissing a standard UI feature as being weird (that’s 20 years old no less) doesn’t help their perception that REAL Studio is Mac-centric and therefore isn’t worth looking at.

    Just as Mac users hate it when Windows users dismiss the Mac for silly reasons, Windows users aren’t happy with the smug arrogance that many in the Mac community express. The Mac UI is no more superior to the Windows UI than a Sparrow is superior to a Robin. There is plenty of common ground between platforms.

  17. I’m not dismissing it. We are going to fix it. But that doesn’t change the fact that I have an opinion about it. And this has NOTHING to do with Mac or Windows. My opinion in this case has to do with good UI versus bad UI. And I’m not painting with a broad stroke here. I’m talking about one particular UI element and nothing more.

  18. @Geoff — you are welcome to your opinion, but you’re also the CEO of the company. So at some point, your opinion has no place being put out in a public discussion of something that affects your product.

    If Steve Jobs came on a blog and said “I think handheld devices are stupid”, people would be scared for the future of the iPod (et al). Sure, it’s “just an opinion”, and he’s certainly entitled to have one, but do you think iPod owners would appreciate him voicing that in a public setting? What about shareholders?

    You may not have intended to add that weight to your statements, but the weight is there nonetheless. And your statements came across as dismissive and derisive of the feature, which is why I raised the fuss that I did. But I’m glad to hear that the issue is being attended to, and hopefully we don’t find ourselves in this situation again in the future. 🙂

  19. @ Aaron – I don’t think any rational person is going to misconstrue my opinion on a particular UI element as having any meaning other than I think the design of that particular UI element is silly. To use your analogy, Steve Jobs is VERY critical of Flash and yet Adobe and Apple continue to have an important and mutually beneficial business relationship. My opinions about a Windows UI element don’t change the fact that supporting Windows is important to our customers and therefore, our business.

  20. @Geoff — I consider myself to be rational, and I’d guess the “misconstruing” happens because the bugs on Windows keep happening at an alarming rate. So when you consistently use condescending terminology in public to discuss Windows, it’s understandable that some people start to wonder about your commitment to that platform. But maybe I’m just being irrational again.

Comments are closed.