受display: none
約束的鏈接不處於默認的製表順序。但是,當它們被透露時 - 例如當父鏈接獲得焦點時,下拉菜單的CSS將顯示一個子菜單 - 它們仍然不在標籤順序中。推測JavaScript是必需的,但只是設置tabindex="0"
什麼也不做。如何添加鏈接到標籤順序,當它們用CSS可見時?
1
A
回答
0
這裏的問題是,只要您切斷「帶有子級的頂級頁面」鏈接,就會更新CSS,並且在錨點可以獲得焦點之前,錨點的父級變爲顯示:無。您需要使用JavaScript來解決此問題,並使用超時延遲CSS中的更改,直到您可以確定焦點丟失是否導致焦點轉移到子元素。
當父級顯示時設置tabindex =「0」:none不會幫助,display:none表示內容可能不在文檔中。
+0
謝謝。我認爲我在CSS':hover'和''''focus'之間感到困惑,它應用於'a'和'li'(當鼠標移過它時保持子菜單打開)和':focus'說明標籤觸發。 JS就是這樣。 –
0
我想出了一個基本上可行的解決方案:http://codepen.io/gyrus/pen/waKjKv/在IE中似乎存在一些問題,我正在研究這個問題。但總的思路是:
- 隱藏下拉
- 設置數據屬性標誌下拉里面的所有鏈接是否具有焦點之前添加一個小的延遲,並隱藏
這僅僅是jQuery的,檢查筆更多:
jQuery(document).ready(function($) {
$('.nav').on('mouseenter focusin', '.menu-level-0.menu-item-has-children', function(e) {
var el = $(this);
// Show sub-menu
el.attr('aria-expanded', 'true')
.find('.sub-menu-wrapper').show();
}).on('mouseleave focusout', '.menu-level-0.menu-item-has-children', function(e) {
var el = $(this);
// Only hide sub-menu after a short delay, so links get a chance to catch focus from tabbing
setTimeout(function() {
var smw = el.find('.sub-menu-wrapper');
if (smw.attr('data-has-focus') !== 'true') {
el.attr('aria-expanded', 'false');
smw.hide();
}
}, 100);
}).on('focusin', '.sub-menu-wrapper', function(e) {
var el = $(this);
el.attr('data-has-focus', 'true');
}).on('focusout', '.sub-menu-wrapper', function(e) {
var el = $(this);
el.attr('data-has-focus', 'false');
// Hide sub-menu on the way out
el.hide().parents('.menu-level-0').attr('aria-expanded', 'false');
});
});
相關問題
- 1. META標籤,如何添加鏈接到他們?
- 2. 你可以在css風格標籤中添加Mailto鏈接嗎?
- 3. 當我們在運行時添加標籤時如何刪除重複標籤
- 4. 將動畫添加到面板中,當它們在WPF中可見時
- 5. CSS標籤順序混亂,當應用於<input>標籤
- 6. 添加鏈接到jQuery標籤
- 7. 添加鏈接到X標籤Chart.js
- 8. 將span標籤添加到ruby鏈接?
- 9. 添加鏈接到標籤ASP.NET(VB)
- 10. 如何添加CSS到struts2標籤
- 11. 如何將輸入和它的標籤添加到css風格?
- 12. 如何在Shiny應用程序中添加css標籤到SideBarPanel
- 13. 添加鏈接到CSS StyleSheet
- 14. 如何添加<br>標籤鏈接<img>標籤?
- 15. 當我的鼠標移到Javascript上時,如何讓鏈接變爲可見?
- 16. 的Java SWT添加標籤不可見
- 17. 當表格可見時隱藏鏈接
- 18. 當超鏈接懸停時將DIV設置爲可見 - CSS/HTML
- 19. 如何將f:ajax標籤添加到h:鏈接?
- 20. Vue公司/ vuetify,如何路由器鏈接添加到標籤
- 21. 如何將鏈接標籤添加到atom.builder飼料生成器?
- 22. Swift:如何按字典中的鍵添加它們的順序
- 23. mysql添加約束(ALTER)如何將它們按順序
- 24. 如何使標籤可見/不可見?
- 25. 當Div標籤可見時,Div標籤中的Asp.net控件不可見?
- 26. 鏈接在盤旋時淡入 - 如何讓它們在目標可見時保持不透明?
- 27. 從數據庫中檢索它們之後,將CSS-classes添加到HTML標籤
- 28. 以編程方式將視圖添加到片段,並只在它們可見時才加載它們
- 29. 當我將它們注入SystemClassLoader時,如何確定類加載順序?
- 30. Zend_Form - 添加CSS類::如何添加css類來Zend_Form標籤?
請告訴我們一些代碼 – Grumpy
http://codepen.io/gyrus/pen/waKjKv/我知道有材料的負荷在t周圍他一般的鍵盤可訪問的下拉菜單的問題。我只是試圖看看是否可以簡單地將顯示的子頁面鏈接添加到Tab鍵順序,以便它們通過Tab鍵而不是跳過。 –
也許這將有助於 - https://developer.mozilla.org/en-US/docs/Web/Accessibility/Keyboard-navigable_JavaScript_widgets 如果確實如此,請在SO中回答您自己的問題。 – tiblu