ICEfaces
  1. ICEfaces
  2. ICE-5223

Buttons in the main page under modal popup gets activated by accesskey sequence (Alt+Shift+accesskey)

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 1.8.2-EE-GA
    • Fix Version/s: 1.8.3, 1.8.2-EE-GA_P02, 2.0.0
    • Component/s: ICE-Components
    • Labels:
      None
    • Environment:
      ICEFaces on SuSe Linux, Browser is Firefox 3.5.6 on Windows

      Description

      Scenario: Main page contains a form with few ice:commandButton components. Then, an user action opens a modal popup (ice:panelPopup component). Modal popup has couple of buttons as well. All buttons have their accesskey attributes set.

      Issue: Typing accesskey sequence for each button (Alt+Shift+accesskey) activates that button, irrespective of whether it's in modal popup or main page under popup

      Expected: accesskey sequences for buttons in main page should have been ignored. (similar to how mouse clicks are ignored.)

      Impact: We heavily use ice:panelPopup and this issue makes accesskey attribute of ice:commandButton almost unusable.

        Activity

        Hide
        Ken Fyten added a comment -

        Can you use the same technique for the modal popup that we use for the BlockUIOnSubmit keyboard blocking?

        Show
        Ken Fyten added a comment - Can you use the same technique for the modal popup that we use for the BlockUIOnSubmit keyboard blocking?
        Hide
        Mircea Toma added a comment -

        Blocked any keyboard interaction with the elements located underneath the modal popup. The strategy chosen was to store and disable the onkey* and onclick callbacks belonging to the elements located outside of the popup container element. Once the popup is closed the callbacks are restored.

        The disabling of the 'onclick' handler specifically solves this issue, the 'click' event generated by an access key invocation is ignored when the popup is on.

        Show
        Mircea Toma added a comment - Blocked any keyboard interaction with the elements located underneath the modal popup. The strategy chosen was to store and disable the onkey* and onclick callbacks belonging to the elements located outside of the popup container element. Once the popup is closed the callbacks are restored. The disabling of the 'onclick' handler specifically solves this issue, the 'click' event generated by an access key invocation is ignored when the popup is on.
        Hide
        Ken Fyten added a comment -

        Need to apply this improved approach to the icefaces2 compat popup as well, and also the ICEfaces 2 blockUIOnSubmit.

        Show
        Ken Fyten added a comment - Need to apply this improved approach to the icefaces2 compat popup as well, and also the ICEfaces 2 blockUIOnSubmit.
        Hide
        Mircea Toma added a comment -

        Applied fixes to icefaces2.0/compat code as well.

        Show
        Mircea Toma added a comment - Applied fixes to icefaces2.0/compat code as well.
        Hide
        Ken Fyten added a comment -

        Mircea, I'm seeing a likely regression from this change in component-showcase. If you view the popup panel demo, view a modal dialog, close it, you can't click on the Desc. or Source tabs now, or select another demo link from the nav panel on the left side.

        Show
        Ken Fyten added a comment - Mircea, I'm seeing a likely regression from this change in component-showcase. If you view the popup panel demo, view a modal dialog, close it, you can't click on the Desc. or Source tabs now, or select another demo link from the nav panel on the left side.
        Hide
        Isuru Perera added a comment -

        Hi Ken, yes.. I also noticed that issue. Javascript stops working after opening a modal popup or a confirmation popup.

        Show
        Isuru Perera added a comment - Hi Ken, yes.. I also noticed that issue. Javascript stops working after opening a modal popup or a confirmation popup.
        Hide
        Mircea Toma added a comment -

        The issue was caused by the try/catch variable that redefined the 'e' variable holding the element having its callbacks restored. The solution was to rename the try/catch variable to avoid naming conflicts.

        Show
        Mircea Toma added a comment - The issue was caused by the try/catch variable that redefined the 'e' variable holding the element having its callbacks restored. The solution was to rename the try/catch variable to avoid naming conflicts.
        Hide
        Mircea Toma added a comment -

        Applied fixes to icefaces2.0 blockUI code as well.

        Show
        Mircea Toma added a comment - Applied fixes to icefaces2.0 blockUI code as well.

          People

          • Assignee:
            Mircea Toma
            Reporter:
            Abhijit Jere
          • Votes:
            2 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: