Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

tabindex="-1" on <ul> doesn't work

Tags:

html

tabindex

I have a mega dropdown menu like this from bootstrap (code simplified) :

<li class="dropdown mega-dropdown">
   <a href="#">Menu Button</a>
   <ul tabindex="-1">
      <li>1st Link</li>
      <li>2nd Link</li>
      <!-- many other links -->
   </ul>
   <!-- many other menu buttons -->
</li>

Small fiddle here : https://jsfiddle.net/48m2ppzc/

I want to simplify the navigation with the tab key :

  • At the beginning the element <ul> has a max-heightof 0px so I shoudn't be able to navigate inside it with the tab key (because the menu is hidden).
  • When I click on the "Menu Button" link, the menu should show up (I set max-height to 500px), and I need to change the tabindex to '0' (I can do it with JQuery so that's not a problem)

The problem is at the first point : tabindex="-1" doesn't work, I can still navigate inside the menu with the tab key.

How can I fix this problem? I use HTML5 so tabindex should work on all HTML elements, I also tried with tabindex="0".

like image 688
Pascal Goldbach Avatar asked Feb 17 '26 09:02

Pascal Goldbach


1 Answers

tabindex is not inherited by the children of an element, so you need to set it manually on all items:

<li class="dropdown mega-dropdown">
   <a href="#">Menu Button</a>
   <ul>
      <li><a href="#" tabindex="-1">1st Link</a></li>
      <li><a href="#" tabindex="-1">2nd Link</a></li>
      <!-- many other links -->
   </ul>
   <!-- many other menu buttons -->
</li>

Since this is probably accessibility related, it might help semantically to use the aria-hidden attribute as well (and toggle it, once it is visible):

<li class="dropdown mega-dropdown">
   <a href="#">Menu Button</a>
   <ul aria-hidden="true">
      <li><a href="#" tabindex="-1">1st Link</a></li>
      <li><a href="#" tabindex="-1">2nd Link</a></li>
      <!-- many other links -->
   </ul>
   <!-- many other menu buttons -->
</li>
like image 137
nils Avatar answered Feb 18 '26 21:02

nils



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!