您可以浏览所有单选按钮吗?


75

我有一个单选按钮列表。当我在它们之间切换时,似乎只有第一个单选按钮或所选的单选按钮会集中显示,其余的单选按钮将被跳过。复选框没有这个问题。

http://jsfiddle.net/2Bd32/

我很难向质量检查人员解释这不是错误。有人可以向我解释为什么会这样。

Soccer: <input type="checkbox" name="sports" value="soccer"  tabindex="1" /><br />
Football: <input type="checkbox" name="sports" value="football"  tabindex="2" /><br /> 

<input type="radio" name="num" value="3" tabindex="3">3<br>
<input type="radio" name="num" value="4" tabindex="4">4<br>
<input type="radio" name="num" value="5" tabindex="5">5<br>
<input type="radio" name="num" value="6" tabindex="6">6<br>
<input type="radio" name="num" value="7" tabindex="7">7<br>

Baseball: <input type="checkbox" name="sports" value="baseball"  tabindex="8"  /><br /> 
Basketball: <input type="checkbox" name="sports" value="basketball"  tabindex="9"  />

好像您的浏览器对我来说。你使用的是什么浏览器?您是否在其他浏览器中尝试过?
Wilson Biggs

尝试使用Firefox,ie9和chrome
qinking126 2013年

请记住,“修复”默认行为通常会导致臭名昭著的错误....如果按小时付费,那么就去吧,如果您在固定的时间/预算项目中,那是明智的选择..
rene

Answers:


116

您可以在此处此处引用W3C作为源。

本质上,单选按钮是一个组,由于仅保留单个值,因此可以用作单个元素。切换到收音机组将使您进入第一项,然后使用箭头键在该组中导航。

  • 焦点可以通过以下方式移至广播组:
    • Tab键
    • 定位标签的访问密钥或助记符
    • 激活标签(通过辅助技术机制)
  • Tab键可在单选按钮组和其他小部件之间移动焦点。
  • 当焦点位于组上并且未选择任何单选按钮时:
    • 按Tab键可将焦点移至组中的第一个单选按钮,但不会选择单选按钮。
    • 按Shift + Tab键可将焦点移至组中的最后一个单选按钮,但不会选择单选按钮。
  • 当焦点移到选择了单选按钮的组时,按Tab和Shift + Tab键将焦点移到选中的单选按钮。
  • 向上箭头和向下箭头键可移动焦点和选择。
    • 向上箭头键的按下将使焦点和选择通过组中的单选按钮向前移动。如果第一个单选按钮具有焦点,则焦点和选择移至组中的最后一个单选按钮。
    • 向下箭头键的按下通过组中的单选按钮将焦点和选择向后移动。如果最后一个单选按钮具有焦点,则焦点和选择将移至组中的第一个单选按钮。*按空格键可检查当前具有焦点的单选按钮。
  • 重新进入该组时,焦点将返回到上一个焦点(已设置选择的项目)。
  • 按Tab键退出该组,并将焦点移到下一个窗体控件。
  • 按下Shift + Tab键可退出该组,并将焦点移至上一个窗体控件。

1
我编写了一个jQuery插件和一个Angular指令,该指令应使任意一组单选按钮可以通过TAB分别进行聚焦。对某人可能有用。:)
乔纳森(Jonathan)

如果尚未从无线电组中选择无线电,是否可以勾勒出无线电组的轮廓?
本·塞沃斯

15

具有一个名称的单选按钮就像单个控件(例如输入或选择),您可以使用箭头键更改其值,使用Tab键将焦点移至另一个控件。



1

如果您使用的是angularjs,则可以ng-model通过使用ng-model并删除来直接控制单选按钮name

<input type="radio" value="0" ng-model="status">
<input type="radio" value="1" ng-model="status">

现在,除了按Tab键之外,另一个优点是您可以先通过单选按钮进行对焦,而无需实际选择它。然后可以按进行选择space


0

如果将Angular Material用于您的应用程序,则可以通过向每个浏览器添加来启用跨浏览器兼容的单选按钮制表符:tabindex<mat-radio-button>

<mat-radio-button [tabindex]="0">

否则,您将无法在Safari中切换至单选按钮(因为这是默认的浏览器行为-单击此处进行讨论)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.