在按鈕上使用aria-controls
來引用它打開的jQuery UI對話框元素是否適合使用ARIA?jQuery UI對話框和詠歎調控件
我已經注意到,jQuery UI的自動換在另一個單獨div
有role=dialog
和aria-labelledby
在對話框的標題div
。我已經看到了選項卡鏈接和選項卡面板之間的關係以及按鈕和表單元素(輸入,下拉等)之間的關係,但不在按鈕和對話框之間的關係aria-controls
。
下面是一個代碼例子來說明什麼,我問:
$('button[aria-controls$="-dialog"]').on('click', function() {
var $dialog = $('#' + $(this).attr('aria-controls'));
$dialog.dialog('open');
});
$('.jqui-dialog').dialog({
modal: true,
autoOpen: false
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script src=https://code.jquery.com/ui/1.11.4/jquery-ui.min.js></script>
<link rel=stylesheet type=text/css href=https://code.jquery.com/ui/1.11.4/themes/dot-luv/jquery-ui.css>
<button type=button aria-controls=add-new-item-dialog>
Add new item
</button>
<div id=add-new-item-dialog class=jqui-dialog title='Add new item'>
<p>A form here.</p>
</div>
問題的主要方面是知道我們是否可以引用標記爲jQuery ui-dialog的節點與'aria-controls'屬性(例如,這將針對內部元素,而不是包裝對話框)。但是你提一提'aria-haspopup',因爲這是避免在這種情況下使用'aria-controls'的問題的正確方法。 – Adam