Sara Soueidan 深入探讨 此 HTML/UX 情况。“是”或“否”是一个布尔值情况。复选框代表此情况:它要么处于选中状态,要么处于未选中状态(嗯,大部分情况)。但复选框总是最佳的 UX 吗?当然,这取决于情况。
如果您希望答案均匀分布,请使用单选按钮。如果我希望答案明显偏向某个答案,我更喜欢复选框。这样,用户要么做出明确的陈述,要么仅仅确认预期的答案。
如果您想要一个具体的、有意的、明确的答案,并且不想有默认选项,请使用单选按钮。复选框有一个隐式默认状态。用户可能会偏向默认选项。所以,需要明确的“否”是决定因素。
所以您有了复选框方法
<label>
<input type="checkbox">
Yes?
</label>
它很好且紧凑,但您不能轻松地将其设置为“必填项”,因为它始终处于有效状态。
因此,如果您需要强制选择,单选按钮(无默认值)更容易
<label>
<input type="radio" name="choice-radio">
Yes
</label>
<label>
<input type="radio" name="choice-radio">
No
</label>
我的意思是,我们也应该考虑另一个范围输入,如果将其最大值设置为 1
,它可以充当切换按钮。
<label class="screen-reader-only" for="choice">Yes or No?</label>
<span aria-hidden="true">No</span>
<input type="range" max="1" id="choice" name="choice">
<span aria-hidden="true">Yes</span>
哈哈。
我认为 <select>
也可以强制用户做出选择,对吗?
<label>
Yes or no?
<select>
<option value="">---</option>
<option value="">Yes</option>
<option value="">No</option>
</select>
</label>
我奇怪地不讨厌它,仅仅因为它很紧凑,而且 可定制。
如果您真的想停下来让某人思考,请让他们输入,对吧?
<label>
Type "yes" or "no"
<input type="text" pattern="[Yy]es|[Nn]o">
</label>
哈哈。
:) 感谢 Chris,但请强调它比这篇文章中的 TL;DR 更细致,即使范围输入或输入答案选项在技术上没有错,但它们也不正确,因为存在其他 UX/可用性方面的考虑(例如,有运动障碍的人)。因此,尽管是有趣的探索,但对于专注于 a11y 和可用性的真实项目(特别是州政府项目)而言,其他选项并非有效选项。
此外,每个 UX 设计师都知道,在可以使用单选按钮时,不应该使用下拉选择框,因此我认为在这些选项旁边添加可用性/a11y 警告 ⚠️ 是值得的。