Windows 8 Touch Screens & IE10/11

Heads up! 

This archived doc is for an old version of UberMenu. 

For the current documentation, please visit the UberMenu 3 Knowledgebase

UberMenu 2.4

As of UberMenu 2.4, the first click on a Windows Touch screen will open the submenu, and the second will follow the link.

Both hover and click events are registered on devices with touch and pointer interfaces. This is a step toward complete Windows touch compatibility in UberMenu 3.

UberMenu 2.3 and earlier

If you are using a touch-enabled Windows 8 device that also includes a click device (mouse), you’ll notice that UberMenu’s submenus are triggered by a click or touch, rather than a hover event.

This is an issue with the way the Windows 8 implements touch events, because they have not made touch and hover events compatible. You can read a bit about these issues here:

http://forums.wpcentral.com/windows-phone-8/202545-ie-10-drop-down-menu-problem.html

http://answers.microsoft.com/en-us/ie/forum/ie10-windows_8/drop-down-list-closes-immediately-on-most-web/5b9fd233-7034-4308-8bd3-0209ebd0cda0

Unfortunately, Windows 8’s touch system isn’t compatible with the standard dropdown menu that appears on just about every site on the web. While it is my goal to make UberMenu compatible of course, but it’d be great to see a solution from Microsoft on this rather than having to code another exception for IE.

At the moment, what UberMenu does is to automatically force UberMenu into “Click” mode when an IE touch interface is detected – that way it can work on touch devices for touch events. The problem then is that the hover events no longer work with a mouse, and that top level links cannot be followed.

Note that everything works properly on Windows 8 / IE11 on normal devices; it is only devices with touch capability that are affected.

Part of the issue is that Internet Explorer has created its own touch events, like MSPointerDown, rather than following web standards events. Code that works properly on every other device/browser (and has since the inception of touch devices), isn’t handled properly with Microsoft’s proprietary implementation.

The goal is to move to a fully touch-enabled event system with UberMenu, but that is not something that can be accomplished immediately. For now, this is the best solution that affects the smallest percentage of users, as touch-enabled desktop machines remain a very small marketshare.

Of course, we can always hope Microsoft actually improves their touch interface so that it can work with the millions of existing menus out there that implement the hover events, just like iOS and Android have for years.

Note that it is possible Windows has created a solution in the meantime that I am unaware of (since I don’t have a Windows 8 touch device to test on). For those who would like to experiment, or change the functionality, you can remove this code from the UberMenu JS file and see if things are working any better presently with hover events:

//Windows 8 Temporary Measures
if( window.navigator.msMaxTouchPoints ){
    uberMenuSettings['trigger'] = 'click';
}

This code will be have a toggle setting in the next version of UberMenu.


Please note that a fully Windows Touch-compatible UberMenu is currently in development. Unfortunately, due to Microsoft’s non-standard touch events, this will require an entire rewrite of UberMenu’s javascript. It’s taking some time to make sure that this is done properly so that the touch experience is unified cross-browser, and my hopeful release target date is April 2014.

On this page