jquery-ui icon indicating copy to clipboard operation
jquery-ui copied to clipboard

Tabbing to a selectmenu doesn't work in Firefox or Safari on Mac

Open trptcolin opened this issue 12 years ago • 19 comments

In an implementation we recently inherited, and also in every other selectmenu implementation I've found using <select> tags, the select-replacing elements are not included in the tab order on the latest versions of FF and Safari on Mac. Chrome works fine, and it's not the usual problem where I need to set a system-wide preference to allow focus on any element, since that's already set.

Here are a few examples where I see this behavior:

http://jsfiddle.net/fnagel/GXtpC/ http://view.jqueryui.com/selectmenu/demos/selectmenu/default.html

Interestingly, the radio-button replacements allow tabbing to focus on this example, but not the select menu replacements: http://www.broadbandmap.gov/about-provider

Any ideas whether there's a workaround, or if we're just out of luck here?

trptcolin avatar Oct 23 '12 21:10 trptcolin

Does this problem only occur on Mac? It seems to work on Windows machines. If so, I would need some more time to investigate in this as I do not own a Mac.

Please note: your second demo link is outdated.

fnagel avatar Oct 25 '12 22:10 fnagel

Yes, only on Mac. Here's what I was seeing:

Javascript-replaced dropdowns:

  • Tabbing doesn't work on Safari on Mac, regardless of app-specific settings.
  • Tabbing takes an [obscure] app-specific setting to get working on Firefox on Mac.

Native controls:

  • Tabbing takes an app-specific setting to get working on Safari on every platform.

trptcolin avatar Oct 25 '12 23:10 trptcolin

Ok, I will take a look asap. Any ideas are welcome!

fnagel avatar Oct 25 '12 23:10 fnagel

I can confirm that it doesn't work in Chrome on Mac either. However, it does work in Opera.

pshoeg avatar Oct 29 '12 15:10 pshoeg

Thanks for the feedback! Any idea how to fix that? I have no clue when I have the chance to test this...

fnagel avatar Oct 29 '12 15:10 fnagel

No idea at all, unfortunately :(

pshoeg avatar Oct 30 '12 12:10 pshoeg

I found this script: http://www.456bereastreet.com/lab/custom-select/ It works on Mac browsers as well, maybe there's something usable there?

pshoeg avatar Oct 30 '12 13:10 pshoeg

This works with native selects. Wont help in our case.

fnagel avatar Oct 30 '12 13:10 fnagel

Any feedback on this issue?

fnagel avatar Feb 04 '13 20:02 fnagel

This is an issue with the default a behavior on Mac Safari and Firefox that skips links during tab navigation. Since the drop-downs are rendered using an anchor tag they get skipped. There a setting (in Safari at least) to tell the browser to navigate to all elements on the page when you use tab, but that's not an ideal solution.

One workaround is to capture the tab press on the previous element and manually focus() the drop down. Hardly ideal if you have tons of drop-downs and dynamically ordered forms though.

rmfruit avatar Apr 08 '13 20:04 rmfruit

So this is a general issue with Apples OS when dealing with links, right? Native selects get tabindex?

Perhaps we could change from a to button elements like we did in the new, built from scratch version: #140

fnagel avatar Apr 09 '13 09:04 fnagel

Yeah, native selects (and all other form elements) receive focus on tabbing so switching to a button would fix the issue. Where is the new, built from scratch version? (Sorry I'm new-sh to Git-land).

rmfruit avatar Apr 10 '13 16:04 rmfruit

Naah, thats my fault, see #140

fnagel avatar Apr 10 '13 16:04 fnagel

Anyone any idea how to fix this issue? Perhaps somebody could test the new selectmenu?

fnagel avatar May 29 '13 18:05 fnagel

Is this still a thing?

fnagel avatar Sep 30 '14 15:09 fnagel

Going to settings > keyboard > shortcuts and turn on all controls option for full keyboard access. This then allows the likes of Firefox to tab through links, etc. Not sure whether this answers things or helps – something I came across a while ago

glencampbell avatar Aug 26 '15 13:08 glencampbell

Found a fix for this. It's only broken on older versions of the selectmenu and is fixed in the latest one.

To fix, change this line in the select menu script... this.newelement = $('<a />', {

To this... this.newelement = $('<span />', {

Exactly what @rmfruit was saying: "This is an issue with the default a behavior on Mac Safari and Firefox that skips links during tab navigation"

So changing it from an to something else, like fixes it.

jgeringer avatar Jul 05 '16 20:07 jgeringer

Thans for giving feedback but there is no difference in your code snippets :-D

fnagel avatar Jul 06 '16 08:07 fnagel

Sorry @fnagel! Part of the code was stripped out when I pasted it in, but it's there now if you see my original post.

jgeringer avatar Jul 06 '16 13:07 jgeringer