div上的标签索引

Mit*_*ran 32 html label input radio-button tabindex

请参阅下面的表单HTML代码

<form method="post" action="register">      
    <div class="email">
        Email   <input type="text" tabindex="1" id="email" value="" name="email">                   </div>
    </div>
    <div class="agreement">
        <div tabindex="2" class="terms_radio">
            <div onclick="changeTerm(this);" class="radio" id="terms_radio_wrapper" style="background-position: left 0pt;">
                <input type="radio" id="terms" value="1" name="terms"><label for="terms">I have read and understood the</label>
            </div>
        </div> 
    </div>
    <div class="form_submit">
        <input type="button" tabindex="3" value="Cancel" name="cancel">
        <input type="submit" tabindex="4" value="Submit" name="submit">         
    </div>
</form>
Run Code Online (Sandbox Code Playgroud)

在这里,我设置了协议复选框,使得无线电输入完全隐藏,并且背景图像应用于包装器div,并且包装div的onclick将切换背景图像以及无线电输入的检查状态.

我需要在'terms_radio'DIV上设置tabindex索引,只是tab上的tabindex ="2"属性不起作用,

当光标位于电子邮件输入字段时,是否可以在按TAB时将无线电输入标签上的虚线边框带上?

小智 30

DIV元素与HTML4中的 tabindex不兼容.

(注: HTML 5规范允许这样做,但是,它通常工作不管)

以下元素支持tabindex属性:A,AREA,BUTTON,INPUT,OBJECT,SELECT和TEXTAREA.

基本上你期望能够成为焦点的东西; 表单元素,链接等

我认为你可能想要做的是使用一些JS(我会建议jQuery为相对无痛的东西)绑定到输入元素上的焦点事件并在父div上设置边框.

将其粘贴在body标签的底部,以便从Google CDN中获取jQuery:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" type="text/javascript"></script>
Run Code Online (Sandbox Code Playgroud)

那么像这样的东西可能会成功:

$(function() {
    $('div.radio input').bind({
        focus : function() {
            $(this).closest('div.radio').css('border','1px dotted #000');
        },
        blur : function() {
            $(this).closest('div.radio').css('border','none');
        }
    });
});
Run Code Online (Sandbox Code Playgroud)

  • 根据HTML4规范,正确,但根据HTML5规范(请参阅http://dev.w3.org/html5/spec-author-view/editing.html#sequential-focus-navigation-and-the-tabindex-属性和http://dev.w3.org/html5/spec-author-view/index.html#attributes-1)并且在实践中,[`tabindex`可以应用于其他元素](http:// snook. CA /档案/ accessibility_and_usability/elements_focusable_with_tabindex), (33认同)
  • 这个答案确实需要更新以反映HTML5或在此处标记不同的答案作为正确答案. (7认同)
  • tabindex = 0为我做了诀窍.但是,当它关注div时,我无法通过"Enter"键击中它.鼠标单击工作.任何的想法? (3认同)

小智 16

是! 它有一个规范,称为WAI-ARIA及其可访问性:https://www.w3.org/TR/wai-aria-practices/#kbd_general_between

  • 我将tabindex添加到div中,浏览器按预期顺序选中它. (4认同)

小智 5

您可以简单地将 tabindex 值从 2 更改为 0。

<div tabindex="0" class="terms_radio">

这提供了与代码流相伴的默认焦点状态。

https://www.w3.org/WAI/PF/aria-practices/#focus_tabindex