div 要素であるボタンがあり、ユーザーがキーボードのタブ キーを押してボタン間を移動できるようにしたいと考えています。テキストをアンカー タグでラップしようとしましたが、うまくいかないようです。
誰にも解決策がありますか?
要素にtabindex
属性を追加します。div
例:
<div tabindex="1">First</div>
<div tabindex="2">Second</div>
steveax のコメントによると、タブ オーダーがページ内の要素の位置からずれないようにする場合は、次のように設定しtabindex
ます0
。
<div tabindex="0">First</div>
<div tabindex="0">Second</div>
仮定
サンプル HTML:
...
<div onclick="clicked(this)">Button 1</div>
<div onclick="clicked(this)">Button 2</div>
<div onclick="clicked(this)">Button 3</div>
...
Jquery コード: これは、ページが読み込まれたときに実行されるコードです。HTML ページで実行する必要があります。
$(()=>{
// make divs with an onclick attribute tabbable/clickable
$('div[onclick]')
.attr('tabindex', '0') // Add tab indexes
.keypress((evt)=>{
var key = evt.key;
evt.preventDefault(); // Ensure all default keypress
// actions are not used
if (key === ' ' || key === 'Enter') { // Only send click events for Space
// or Enter keys
evt.currentTarget.click(); // Run the click event for element
}
});
});
ここで実際の例を見つけることができます。