Someone came by my office today and asked me if I could show him how to make a
column on a SharePoint list required. No problem! While this isn’t as simple
as it could be, it’s pretty straightforward. Go into the list you want to
change, select List Settings from the Settings drop down, then click
the column you want to change in the List Settings page. You should see an
option called “Require that this column contains information.” By default,
this is off, but turning it on will make the column required.

However, in this case, that option wasn’t showing in the UI. The reason was
that the column was a Yes/No (check box) field. Now, if you think about
it, this makes sense. A checkbox always has state, either checked or
unchecked, so it’s by nature required. A user always has to fill in a checkbox
with some data, either by checking it or unchecking it. It all comes down to
the default state, which is settable in the SharePoint UI.

The interesting thing here, though, is that the user didn’t stop to think
about this. And that makes sense. He just wanted to make a column required; he
didn’t think about what type of column it was. SharePoint totally removes the
required field setting from the UI for Yes/No fields because it doesn’t make
sense. However, the user got confused. He wasn’t sure if the UI was missing by
design or if he wasn’t looking in the right spot for the setting. If you have
a task to accomplish using relatively unfamiliar UI, you go to the place that
makes sense to you, but you’re never sure you’re in the right place. In this
case, the user poked around other parts of the UI before coming to me, because
he thought he was looking in the wrong place.

This might be alleviated by disabling (i.e. graying out) the part of the UI
that is not applicable. This is somewhat clearer, because it says, “Yes, this
is where you would change this setting, but it doesn’t make sense here or is
not allowed.” This isn’t a hard rule. You can’t always display all
possible settings in one piece of UI because if there are a large number of
settings, things can get confusing and distracting. Some hiding does make
sense in many cases. But it is worth some dedicated thought about your UI and
what your users are trying to accomplish when deciding whether to hide a piece
of UI or simply gray it out.