单选按钮键盘陷阱

时间:2012-05-24 14:48:59

标签: javascript html css accessibility

我正在创建一个多项选择问题练习,并且遇到键盘辅助功能问题。基本上,用户无法通过键盘循环显示单选按钮列表。当“焦点”光标在单选按钮上并且用户按下箭头键移动到下一个单选按钮时,会发生键盘陷阱。不是简单地聚焦它,而是选择单选按钮,从而显示答案。如何在使用键盘进行单选时停止选择单选按钮?

HTML 标记:

<div id="contentWrapper">
<p class="instructions">Click on the correct answer.</p>

<ol start="49">
    <!-- Start of multiple choice question -->
    <li class="multipleChoice gradedQuestion">
        <p class="question">If you receive a request for an extension from a trader, you should:</p>
        <input type="hidden" name="questionNumber" value="49">
        <ul>
            <li>
                <div class="answerOption"><label for="question49A">Refer to IP 13; if the original requirements are still being met, approve the extension.</label></div>
                <div class="inputAndIdContainer"><input type="radio" name="question49" value="0" id="question49A"> A.</div>
            </li>
            <li>
                <div class="answerOption"><label for="question49B">Refer to IP 20; if the original requirements are still being met, approve the extension.</label></div>


        <div class="inputAndIdContainer"><input type="radio" name="question49" value="0" id="question49B"> B.</div>
        </li>
        <li>
            <div class="answerOption"><label for="question49C">Refer to FW1; if the original requirements are still being met, approve the extension.</label></div>
            <div class="inputAndIdContainer"><input type="radio" name="question49" value="1" id="question49C"> C.</div>
        </li>
    </ul>
    <div class="feedback">
        <div class="answeredCorrectly">Correct</div>
        <div class="answeredIncorrectly">Incorrect</div>
        <div class="answer">
            <strong>Answer:</strong> C - Refer to FW1.
        </div>
    </div>
</li>
<!-- End of multiple choice question -->

3 个答案:

答案 0 :(得分:7)

简短的回答是你不能,这不是键盘陷阱。这就是收音机的本质。

如果将它们组合在一起(名称属性),则将其标记为;按空格键,选择第一项,使用箭头键选择下一项。您应该编写JS以观察焦点以进入组然后离开。离开后,显示<div id="feedback">或按一下按钮即可显示。

编辑关于您的其他帖子,您可能需要添加类似于.click()的.focus()函数。

答案 1 :(得分:3)

这就是他们应该工作的方式,看看this文件!

基本上就是这样:

在IE上,当通过Tab键到达单选按钮组时,最初选择的按钮被聚焦,虚线矩形表示这一点。您可以使用箭头键在组内的按钮之间移动; “向下”和“向右”箭头在组内向前移动,“向上”和“向左”箭头向后移动。移动到按钮后,该按钮会被选中(并且检查的组中的按钮将被取消选中)。

在Netscape上,情况有所不同。通过Tab键到达一组单选按钮时,第一个按钮将获得焦点。您可以通过Tab键在组内向前移动。移动到该按钮不会改变设置。使用空格键或Enter键检查按钮。

答案 2 :(得分:1)

我通过点击输入后模糊输入来解决这个问题。

至少通过这种方式,如果您使用制表符/空格/箭头键进行导航,则不会弄乱用户。如果他们点击它,他们将不太可能使用箭头键选择下一个选项。

Jquery的:

$('.quiz input:radio').click(function(){ $(this).blur()})