“是或否?”

Avatar of Chris Coyier
Chris Coyier

DigitalOcean 为您旅程的每个阶段提供云产品。立即开始使用 $200 免费积分!

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>

哈哈。