2013-04-05 59 views
1

我想解決爲什麼我無法導航我們的菜單,它通過鍵盤使用多個無序列表。無法通過鍵盤選項卡導航無序列表菜單

有沒有人有任何提示?我感覺它更像是一個CSS問題,而不是HTML。

相關CSS:

/* MENU */ 


#cssmenu{ 
    border:none; 
    border:0px; 
    margin:0px; 
    padding:0px; 
    font: 67.5% 'Lucida Sans Unicode', 'Bitstream Vera Sans', 'Trebuchet Unicode MS', 'Lucida Grande', Verdana, Helvetica, sans-serif; 
    font-size:11px; 
    font-weight:bold; 
    } 
#cssmenu ul{ 
    background:#333333; 
    height:39px; 
    list-style:none; 
    margin:0; 
    padding:0; 
    display: table; 
    width: 100%; 

    } 
#cssmenu li{ 
    padding:0px; 
    display: table-cell; 
    width: 115px; 
    } 

#cssmenu li a{ 
    background:#333333 url('../images/seperator.gif') bottom right no-repeat; 
    color:#FFF; 
    display:block; 
    font-weight:normal; 
    line-height:39px; 
    margin:0px; 
    padding:0px 0px; 
    text-align:center; 
    text-decoration:none; 
    width: 115px; 

    } 



#cssmenu li a:hover, #cssmenu ul li:hover a{ 
    background: #2580a2; 
    color:#FFFFFF; 
    text-decoration:none; 
    float: none; 
    } 
#cssmenu li ul{ 
    background:#333333; 
    display:none; 
    height:auto; 
    padding:0px; 
    margin:0px; 
    border:0px; 
    position:absolute; 
    width:230px; 
    z-index:200; 
    /*top:1em; 
    /*left:0;*/ 
    } 
#cssmenu li:hover ul{ 
    display:block; 

    } 
#cssmenu li li { 
    background:url('../images/sub_sep.gif') bottom left no-repeat; 
    display:block; 
    float:none; 
    margin:0px; 
    padding:0px; 
    width:230px; 
    } 
#cssmenu li:hover li a{ 
    background:none; 
    } 
#cssmenu li ul a{ 
    display:block; 
    height:35px; 
    font-size:10px; 
    font-style:normal; 
    margin:0px; 
    padding:0px 10px 0px 15px; 
    text-align:left; 
    width: 205px; 

    } 
#cssmenu li ul a:hover, #cssmenu li ul li:hover a{ 
    background:#2580a2 url('../images/hover_sub.gif') center left no-repeat; 
    border:0px; 
    color:#ffffff; 
    text-decoration:none; 
    width: 205px; 

    } 
#cssmenu p{ 
    clear:left; 
    } 

:focus {outline:none;} 
::-moz-focus-inner {border:0;} 

相關的HTML代碼:

<div id="cssmenu">         <ul>    <li><a href="HTTP://wcmsdev/scripts/nc.dll?WCMS:HOMEPAGE:2059103169:pc=PC_90001">Home</a></li>   
        <li class="has-sub">    <a href="HTTP://wcmsdev/scripts/nc.dll?WCMS:STANDARD:2059103169:pc=PC_90002">Operations</a>    <ul>    
        <li><a href="HTTP://wcmsdev/scripts/nc.dll?WCMS:STANDARD:2059103169:pc=PC_90003">Individuals</a>       
     </li> 
        <li><a href="HTTP://wcmsdev/scripts/nc.dll?WCMS:STANDARD:2059103169:pc=PC_90123">Aircraft owners</a>       
     </li> 
        <li><a href="HTTP://wcmsdev/scripts/nc.dll?WCMS:STANDARD:2059103169:pc=PC_90276">Aircraft operators </a>       
     </li> 
        <li><a href="HTTP://wcmsdev/scripts/nc.dll?WCMS:STANDARD:2059103169:pc=PC_90389">Flight training</a>       
     </li> 
        <li><a href="HTTP://wcmsdev/scripts/nc.dll?WCMS:STANDARD:2059103169:pc=PC_90405">Aerodromes</a>      
     </li> 
        <li><a href="HTTP://wcmsdev/scripts/nc.dll?WCMS:STANDARD:2059103169:pc=PC_90447">Office of airspace regulation</a>      
     </li> 
        <li><a href="HTTP://wcmsdev/scripts/nc.dll?WCMS:STANDARD:2059103169:pc=PC_93439">Sport aviation</a>      
     </li> 
        <li><a href="HTTP://wcmsdev/scripts/nc.dll?WCMS:STANDARD:2059103169:pc=PC_93379">Class D</a>       
     </li> 
        <li><a href="HTTP://wcmsdev/scripts/nc.dll?WCMS:STANDARD:2059103169:pc=PC_100058">Non-towered aerodromes</a>       
     </li> 
        <li><a href="HTTP://wcmsdev/scripts/nc.dll?WCMS:STANDARD:2059103169:pc=PC_90385">Dangerous goods</a>       
     </li> 
        <li><a href="HTTP://wcmsdev/scripts/nc.dll?WCMS:STANDARD:2059103169:pc=PC_100808">Ground operations</a>      
     </li> 
        <li><a href="HTTP://wcmsdev/scripts/nc.dll?WCMS:STANDARD:2059103169:pc=PC_100847"> Non-compliance notice </a>      
     </li> 
        <li><a href="HTTP://wcmsdev/scripts/nc.dll?WCMS:STANDARD:2059103169:pc=PC_100374">Unmanned Aircraft Systems (UAS) </a>      
     </li> 
        <li><a href="HTTP://wcmsdev/scripts/nc.dll?WCMS:STANDARD:2059103169:pc=PC_100705">General Aviation (GA) task force</a>      
     </li> 
        <li><a href="HTTP://wcmsdev/scripts/nc.dll?WCMS:STANDARD:2059103169:pc=PC_100852">Regional Aviation Safety Forum (RASF)</a>      
     </li> 
        <li><a href="http://casa.gov.au/aod" target="_top">Drug and Alcohol Management Plans</a>       
     </li> 
        </ul></li>   
        <li class="has-sub">    <a href="HTTP://wcmsdev/scripts/nc.dll?WCMS:STANDARD:2059103169:pc=PC_90473">Airworthiness</a>    <ul>    
        <li><a href="HTTP://wcmsdev/scripts/nc.dll?WCMS:STANDARD:2059103169:pc=PC_100610">Maintenance regulations</a>      
     </li> 
        <li><a href="HTTP://wcmsdev/scripts/nc.dll?WCMS:STANDARD:2059103169:pc=PC_90474">Personnel</a>      
     </li> 
        <li><a href="HTTP://wcmsdev/scripts/nc.dll?WCMS:STANDARD:2059103169:pc=PC_90496">Certification and design</a>      
     </li> 
        <li><a href="HTTP://wcmsdev/scripts/nc.dll?WCMS:STANDARD:2059103169:pc=PC_90507">Manufacturing</a>      
     </li> 
        <li><a href="HTTP://wcmsdev/scripts/nc.dll?WCMS:STANDARD:2059103169:pc=PC_90515">Continuing airworthiness</a>      
     </li> 
        <li><a href="HTTP://wcmsdev/scripts/nc.dll?WCMS:STANDARD:2059103169:pc=PC_90822">Airworthiness directives</a>      
     </li> 
        <li><a href="HTTP://wcmsdev/scripts/nc.dll?WCMS:STANDARD:2059103169:pc=PC_90821">Maintenance organisations</a>      
     </li> 
        <li><a href="HTTP://wcmsdev/scripts/nc.dll?WCMS:STANDARD:2059103169:pc=PC_101038">Flight test and evaluation</a>       
     </li> 
        </ul></li>   
        <li class="has-sub">    <a href="HTTP://wcmsdev/scripts/nc.dll?WCMS:STANDARD:2059103169:pc=PC_90900">Regulations &amp; policy</a>    <ul>    
        <li><a href="HTTP://wcmsdev/scripts/nc.dll?WCMS:STANDARD:2059103169:pc=PC_90902">Current rules</a>      
     </li> 
        <li><a href="HTTP://wcmsdev/scripts/nc.dll?WCMS:PWA:2059103169:pc=PC_91070">Changing the rules</a>      
     </li> 
        <li><a href="HTTP://wcmsdev/scripts/nc.dll?WCMS:STANDARD:2059103169:pc=PC_91181">Enforcement action</a>      
     </li> 
        <li><a href="HTTP://wcmsdev/scripts/nc.dll?WCMS:PWA:2059103169:pc=PC_91190">Policy notices</a>      
     </li> 
        <li><a href="HTTP://wcmsdev/scripts/nc.dll?WCMS:STANDARD:2059103169:pc=PC_100396">Australia's state safety program</a>      
     </li> 
        <li><a href="HTTP://wcmsdev/scripts/nc.dll?WCMS:STANDARD:2059103169:pc=PC_101078">Performance based navigation (PBN)</a>       
     </li> 
        <li><a href="HTTP://wcmsdev/scripts/nc.dll?WCMS:STANDARD:2059103169:pc=PC_101326">Licensing regulations</a>      
     </li> 
        </ul></li>   
        <li class="has-sub">    <a href="HTTP://wcmsdev/scripts/nc.dll?WCMS:STANDARD:2059103169:pc=PC_91263">Manuals &amp; forms</a>    <ul>    
        <li><a href="HTTP://wcmsdev/scripts/nc.dll?WCMS:STANDARD:2059103169:pc=PC_91264">Manuals</a>       
     </li> 
        <li><a href="HTTP://wcmsdev/scripts/nc.dll?WCMS:STANDARD:2059103169:pc=PC_91308">Forms</a>      
     </li> 
        <li><a href="HTTP://wcmsdev/scripts/nc.dll?WCMS:STANDARD:2059103169:pc=PC_91316">CASA online store</a>      
     </li> 
        </ul></li>   
        <li class="has-sub">    <a href="HTTP://wcmsdev/scripts/nc.dll?WCMS:STANDARD:2059103169:pc=PC_91314">Education</a>    <ul>    
        <li><a href="HTTP://wcmsdev/scripts/nc.dll?WCMS:STANDARD:2059103169:pc=PC_101349">AviationWorx</a>      
     </li> 
        <li><a href="HTTP://wcmsdev/scripts/nc.dll?WCMS:STANDARD:2059103169:pc=PC_100101">eLearning catalogue</a>      
     </li> 
        <li><a href="HTTP://wcmsdev/scripts/nc.dll?WCMS:STANDARD:2059103169:pc=PC_91346">Flight Safety Australia</a>       
     </li> 
        <li><a href="HTTP://wcmsdev/scripts/nc.dll?WCMS:STANDARD:2059103169:pc=PC_90006"> Pilot guides and information </a>      
     </li> 
        <li><a href="HTTP://wcmsdev/scripts/nc.dll?WCMS:STANDARD:2059103169:pc=PC_100138">OnTrack</a>      
     </li> 
        <li><a href="HTTP://wcmsdev/scripts/nc.dll?WCMS:STANDARD:2059103169:pc=PC_100994">Human factors</a>      
     </li> 
        <li><a href="HTTP://wcmsdev/scripts/nc.dll?WCMS:STANDARD:2059103169:pc=PC_91430">Safety management systems</a>      
     </li> 
        <li><a href="HTTP://wcmsdev/scripts/nc.dll?WCMS:STANDARD:2059103169:pc=PC_91329">Seminars and workshops</a>      
     </li> 
        <li><a href="HTTP://wcmsdev/scripts/nc.dll?WCMS:STANDARD:2059103169:pc=PC_91317">Aviation safety advisers</a>      
     </li> 
        <li><a href="HTTP://wcmsdev/scripts/nc.dll?WCMS:STANDARD:2059103169:pc=PC_91455">Advice for air travellers</a>      
     </li> 
        <li><a href="HTTP://wcmsdev/scripts/nc.dll?WCMS:STANDARD:2059103169:pc=PC_91316">CASA online store</a>      
     </li> 
        <li><a href="HTTP://wcmsdev/scripts/nc.dll?WCMS:STANDARD:2059103169:pc=PC_101317">Out-n-Back</a>       
     </li> 
        </ul></li>   
        <li class="has-sub">    <a href="HTTP://wcmsdev/scripts/nc.dll?WCMS:STANDARD:2059103169:pc=PC_91488">Services</a>    <ul>    
        <li><a href="HTTP://wcmsdev/scripts/nc.dll?WCMS:STANDARD:2059103169:pc=PC_91489">Licences and registrations</a>      
     </li> 
        <li><a href="HTTP://wcmsdev/scripts/nc.dll?WCMS:STANDARD:2059103169:pc=PC_91510">Service standards and fees</a>      
     </li> 
        <li><a href="HTTP://wcmsdev/scripts/nc.dll?WCMS:PWA:2059103169:pc=PC_91499">Self Service Portal</a>      
     </li> 
        <li><a href="HTTP://wcmsdev/scripts/nc.dll?WCMS:STANDARD:2059103169:pc=PC_91517">Permission application centre (PAC)</a>       
     </li> 
        <li><a href="HTTP://wcmsdev/scripts/nc.dll?WCMS:STANDARD:2059103169:pc=PC_91521">Aviation medicals</a>      
     </li> 
        <li><a href="HTTP://wcmsdev/scripts/nc.dll?WCMS:STANDARD:2059103169:pc=PC_100450">Delegates and authorised persons</a>      
     </li> 
        </ul></li>   
        <li class="has-sub">    <a href="HTTP://wcmsdev/scripts/nc.dll?WCMS:STANDARD:2059103169:pc=PC_91621">About CASA</a>    <ul>    
        <li><a href="HTTP://wcmsdev/scripts/nc.dll?WCMS:STANDARD:2059103169:pc=PC_91622">Contact CASA</a>      
     </li> 
        <li><a href="HTTP://wcmsdev/scripts/nc.dll?WCMS:STANDARD:2059103169:pc=PC_93342">CASA board</a>      
     </li> 
        <li><a href="HTTP://wcmsdev/scripts/nc.dll?WCMS:STANDARD:2059103169:pc=PC_91668">CASA's Director</a>       
     </li> 
        <li><a href="HTTP://wcmsdev/scripts/nc.dll?WCMS:STANDARD:2059103169:pc=PC_91703">Recent media releases </a>      
     </li> 
        <li><a href="HTTP://wcmsdev/scripts/nc.dll?WCMS:STANDARD:2059103169:pc=PC_92568">Corporate publications</a>      
     </li> 
        <li><a href="HTTP://wcmsdev/scripts/nc.dll?WCMS:STANDARD:2059103169:pc=PC_100448">CASA on Twitter</a>      
     </li> 
        <li><a href="HTTP://wcmsdev/scripts/nc.dll?WCMS:STANDARD:2059103169:pc=PC_92918">Corporate policy</a>      
     </li> 
        <li><a href="HTTP://wcmsdev/scripts/nc.dll?WCMS:STANDARD:2059103169:pc=PC_92936">Careers at CASA</a>       
     </li> 
        <li><a href="HTTP://wcmsdev/scripts/nc.dll?WCMS:STANDARD:2059103169:pc=PC_92956">Research and statistics</a>       
     </li> 
        <li><a href="HTTP://wcmsdev/scripts/nc.dll?WCMS:STANDARD:2059103169:pc=PC_100223">International Engagement</a>      
     </li> 
        <li><a href="HTTP://wcmsdev/scripts/nc.dll?WCMS:STANDARD:2059103169:pc=PC_100330">CASA mailing lists</a>       
     </li> 
        </ul></li>   
</ul> 
</div> 
+0

我發現了這個工作示例http://jsfiddle.net/ cfWpE /(這裏:http://stackoverflow.com/questions/8741521/accessible-css-dropdown-menu)所以看看。 – 2013-04-05 02:38:00

回答

2

它不工作,因爲你只有:hover規則,鍵盤不會觸發。當一個元素具有選項卡焦點時,它具有:focus僞類,當添加它時,您會發現菜單項在聚焦時點亮,但仍然不打開菜單。

jsFiddle: With :focus rules along side :hover rules

enter image description here

這是由於以下規則:

#cssmenu li:hover ul, 
#cssmenu li:focus ul{ 
    display:block; 
} 

li實際上從未被關注,因爲它沒有標籤指數,lia獲得焦點。由於liul的父項,但aul的兄弟,我們需要使用其他規則才能使此定位生效。我們可以使用下一個兄弟選擇器+來根據a:focus定位ul。這讓我們更近了一步。

#cssmenu li:hover ul, 
#cssmenu li a:focus + ul{ 
    display:block; 
} 

jsFiddle with the above applied

enter image description here

不幸的是,只要你可以用CSS去(據我所知)。當我們嘗試去下一個a時,:focus將被丟棄在頂層a上,並且由於子菜單將丟失display:block;,菜單將被隱藏。由於我們在應用樣式時無法遍歷樹,所以我們無法將display:block應用於祖先ul,因爲我們在:focusa之後進一步向下。

我可以看到越來越解決這個問題的唯一方法是使用JavaScript和處理focus(也許blur())事件的頂級菜單項。然後,我們還必須處理click()事件,以便在單擊文檔中的任意位置時隱藏菜單,否則它將保持活動狀態。

jsFiddle fully working

enter image description here

CSS

#cssmenu li.force-show ul, 
#cssmenu li:hover ul, 
#cssmenu li a:focus + ul{ 
    display:block; 
} 

JS

$('#cssmenu > ul > li > a').focus(function() { 
    $('#cssmenu > ul > li').removeClass('force-show'); 
    $(this).parent().addClass('force-show'); 
}); 

// Clear the menu class if clicked anywhere in the document. 
$(document).click(function() { 
    $('#cssmenu > ul > li').removeClass('force-show'); 
}); 
+1

只是我長期見過的最好的答案。 – sephiith 2013-04-09 02:15:10

0

的問題是,在focus CSS不能上升。我來到最近的是this

/* for instance use it that way */ 
#cssmenu li a:hover, 
#cssmenu li a:focus, 
#cssmenu ul li:hover a, 
#cssmenu ul li:focus a { } 

的示例適用於第一級。但是在第二個時候,第一個輸出是:focus,所以子菜單又被隱藏了。我認爲你需要用JavaScript來幫助一下。