Moodle
  1. Moodle
  2. MDL-14439

Drop down menus not usable and not accessible in IE using keyboard only

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Critical Critical
    • Resolution: Fixed
    • Affects Version/s: 1.8.5, 1.9, 2.0
    • Fix Version/s: 1.8.6, 1.9.1
    • Component/s: Accessibility, Usability
    • Labels:
      None
    • Affected Branches:
      MOODLE_18_STABLE, MOODLE_19_STABLE, MOODLE_20_STABLE
    • Fixed Branches:
      MOODLE_18_STABLE, MOODLE_19_STABLE
    • Rank:
      24781

      Description

      in IE, when using keyboard in Drop down menus (for example, adding a resource or activity, or selecting a language in the user profile, or using the drop down menu on top left of each resource/activity page), it is necessary to be extremely fast to select an option.
      If you are not very very fast, the first option is always selected by default. The problem does not appears using FireFox.

      Possible solution: add a flag in the user profile allowing people to show the menu buttons (currently available in the code, but enclosed in the NOSCRIPT tag). This way people using either keyboard or mouse will be able to use the drop down menus.

      1. dropdown.js
        3 kB
        Jérôme Mouneyrac
      2. lib.19.second.version.patch
        2 kB
        Jérôme Mouneyrac

        Activity

        Hide
        Eloy Lafuente (stronk7) added a comment -

        Wow, this is really annoying.

        Anything in our side we can do to fix that IE behaviour (note I haven't tested it) ?Ideas?

        Adding some people here...ciao

        Show
        Eloy Lafuente (stronk7) added a comment - Wow, this is really annoying. Anything in our side we can do to fix that IE behaviour (note I haven't tested it) ?Ideas? Adding some people here...ciao
        Hide
        Martin Dougiamas added a comment -

        OK, this is terrible. Can you look into this Jerome?

        Is there alternative JS we can use to do the same thing that might keep IE happy? Or require ENTER to be hit. Otherwise, perhaps we can add a better delay or something.

        The good thing is that most of this type of menus are all done in one small function: popup_form().

        Show
        Martin Dougiamas added a comment - OK, this is terrible. Can you look into this Jerome? Is there alternative JS we can use to do the same thing that might keep IE happy? Or require ENTER to be hit. Otherwise, perhaps we can add a better delay or something. The good thing is that most of this type of menus are all done in one small function: popup_form().
        Hide
        Martin Dougiamas added a comment -

        Jerome, can we aim to have a patch here for this by tomorrow?

        Show
        Martin Dougiamas added a comment - Jerome, can we aim to have a patch here for this by tomorrow?
        Hide
        Jérôme Mouneyrac added a comment - - edited

        I attached a patch + a javascript file that you need to put it into /lib/

        Note: in order to navigate into a dropdown list without this patch, use ATL+Arrow

        Show
        Jérôme Mouneyrac added a comment - - edited I attached a patch + a javascript file that you need to put it into /lib/ Note: in order to navigate into a dropdown list without this patch, use ATL+Arrow
        Hide
        Andrea Bicciolo added a comment -

        Thanks. The patch will also work on 1.8 stable?

        Show
        Andrea Bicciolo added a comment - Thanks. The patch will also work on 1.8 stable?
        Hide
        Jérôme Mouneyrac added a comment -

        Hi Andrea, I did exactly the same changed on 1.8 and it works as well.

        Show
        Jérôme Mouneyrac added a comment - Hi Andrea, I did exactly the same changed on 1.8 and it works as well.
        Hide
        Andrea Bicciolo added a comment -

        Fantastic Jerome, thanks. Should we expect it on CVS by next Tuesday ?

        Show
        Andrea Bicciolo added a comment - Fantastic Jerome, thanks. Should we expect it on CVS by next Tuesday ?
        Hide
        Jérôme Mouneyrac added a comment -

        I optimized the patch and javascript file. (the javascript code is now called only once, and I added some comments in the javascript file)
        The 'dropdown.js' javascript file has still to be put in /lib/
        I tested these new modifications on 1.8, it works.

        Show
        Jérôme Mouneyrac added a comment - I optimized the patch and javascript file. (the javascript code is now called only once, and I added some comments in the javascript file) The 'dropdown.js' javascript file has still to be put in /lib/ I tested these new modifications on 1.8, it works.
        Hide
        Martin Dougiamas added a comment -

        Getting there, thanks, Jerome!

        One more thing. Is it possible to perhaps avoid all that JS running on Firefox at all, by putting the browser check in weblib.php using PHP. So if it's not IE or Opera, then we just do it exactly like the old way which works fine.

        Show
        Martin Dougiamas added a comment - Getting there, thanks, Jerome! One more thing. Is it possible to perhaps avoid all that JS running on Firefox at all, by putting the browser check in weblib.php using PHP. So if it's not IE or Opera, then we just do it exactly like the old way which works fine.
        Hide
        Jérôme Mouneyrac added a comment -

        Patch and javascript file updated. PHP is doing the browser checking now. Tested on 1.9 and 1.8.

        Show
        Jérôme Mouneyrac added a comment - Patch and javascript file updated. PHP is doing the browser checking now. Tested on 1.9 and 1.8.
        Hide
        Martin Dougiamas added a comment -

        That's the one, thanks Jerome!

        Show
        Martin Dougiamas added a comment - That's the one, thanks Jerome!
        Hide
        Jérôme Mouneyrac added a comment -

        ok, commited on trunk, 1.9 Stable and 1.8 Stable

        Show
        Jérôme Mouneyrac added a comment - ok, commited on trunk, 1.9 Stable and 1.8 Stable
        Hide
        Andrea Bicciolo added a comment -

        Thanks, great fix! Just to be sure, is this fix working when javascript is disabled ?

        Show
        Andrea Bicciolo added a comment - Thanks, great fix! Just to be sure, is this fix working when javascript is disabled ?
        Hide
        Helen Foster added a comment -

        Tested 1.8 and 1.9 with IE6. Andrea, thanks for reporting and Jerome, thanks for fixing

        Show
        Helen Foster added a comment - Tested 1.8 and 1.9 with IE6. Andrea, thanks for reporting and Jerome, thanks for fixing
        Hide
        Anthony Borrow added a comment -

        David/Laia - I'm not sure what the usability issue here is other than to encourage cross-browser compatibility. As a rule, Moodle has done well in following coding standards and then goes in and makes patches when IE (or any other browser) deviates from the standards. I can't think of anything that Laia would need to do with these types of issues as they are really browser bugs rather than Moodle UI issues. If Laia wanted she could come up with a list of the various types of user interfaces that users use and where they use them. For example, dropdown boxes, menus, tabs, pushbuttons, etc. Having some research about where such things are used might be of some use and may reveal some inconsistencies. My theory is the more data we have the better. Then it is just transforming that data to meaningful/useful information. Peace - Anthony

        Show
        Anthony Borrow added a comment - David/Laia - I'm not sure what the usability issue here is other than to encourage cross-browser compatibility. As a rule, Moodle has done well in following coding standards and then goes in and makes patches when IE (or any other browser) deviates from the standards. I can't think of anything that Laia would need to do with these types of issues as they are really browser bugs rather than Moodle UI issues. If Laia wanted she could come up with a list of the various types of user interfaces that users use and where they use them. For example, dropdown boxes, menus, tabs, pushbuttons, etc. Having some research about where such things are used might be of some use and may reveal some inconsistencies. My theory is the more data we have the better. Then it is just transforming that data to meaningful/useful information. Peace - Anthony

          People

          • Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: