Why are the labels for two different form elements so different? Can I make them the same? I created a webform that has one textfield and two radio button fields.
When displaying, the textfield label is themed correctly, but the radio button labels are not.
When I look at the tags and classes, the texfield label has a &quot;label&quot; tag with &quot;control-label&quot; class like this
&lt;label for=&quot;textfield1&quot; class=&quot;control-label&quot;&gt;Textfield label&lt;/label&gt;

but the radio labels have &quot;span&quot; tags with &quot;fieldset-legend&quot; class, inside &quot;legend&quot; tags, like this
&lt;legend&gt;
    &lt;span class=&quot;fieldset-legend&quot;&gt;Radio element question&lt;/span&gt;
  &lt;/legend&gt;

Why are they different? Can I ake them the same, or is add a CSS style to make the span.fieldset-legend match the label.control-label the only way to make them the same?
I am using the Bootstrap 3 theme and I enabled the webform-bootstrap module.
The differences here come down to the differences in the two types of form elements.
From the MDN docs for the label element:

The HTML  element represents a caption for an item in a user interface

From the MDN docs for the legend element:

The HTML  element represents a caption for the content of its parent .

Looking at the example from the legend documentation, we see how the two types of elements, labels and legends, are semantically different.
&lt;fieldset&gt;
    &lt;legend&gt;Choose your favorite monster&lt;/legend&gt;

    &lt;input type=&quot;radio&quot; id=&quot;kraken&quot; name=&quot;monster&quot;&gt;
    &lt;label for=&quot;kraken&quot;&gt;Kraken&lt;/label&gt;&lt;br/&gt;

    &lt;input type=&quot;radio&quot; id=&quot;sasquatch&quot; name=&quot;monster&quot;&gt;
    &lt;label for=&quot;sasquatch&quot;&gt;Sasquatch&lt;/label&gt;&lt;br/&gt;

    &lt;input type=&quot;radio&quot; id=&quot;mothman&quot; name=&quot;monster&quot;&gt;
    &lt;label for=&quot;mothman&quot;&gt;Mothman&lt;/label&gt;
&lt;/fieldset&gt;

Each radio button has its own label element with text describing it. Meanwhile, the set of radio buttons is wrapped in a fieldset with a legend element to describe the group as a whole.
While you may be able to alter the markup for your radios, to replace the legend element with a label, you should not, especially if you're trying to build an accessible website (and you should be). This answer to Is it good practice to use  for non-input/non-interactive elements? provides a more detailed explanation for why you shouldn't use a label in a context like this.