Fixed Labels for custom fields are not associated with their inputs

Affected version
v2.2.4

36degrees

Member
The labels for custom fields are not associated with their inputs using the for attribute.

For example, this is the markup for a custom field for a user's country:

HTML:
<dl class="formRow formRow--customField formRow--input" data-field="country">
    <dt>
        <div class="formRow-labelWrapper">
        <label class="formRow-label">Country</label></div>
    </dt>
    <dd>
        <select name="custom_fields[country]" class="field_country input">
            <option value="" selected="selected">&nbsp;</option>
            <!-- Options omitted for brevity -->
        </select>
    </dd>
</dl>

Compare this to the markup for the 'built in' location field, which does include the for attribute (for="_xfUid-8-1618071982"):

HTML:
<dl class="formRow formRow--input">
    <dt>
        <div class="formRow-labelWrapper">
        <label class="formRow-label" for="_xfUid-8-1618071982">Location</label>
        <dfn class="formRow-hint">Required</dfn></div>
    </dt>
    <dd>
        <input type="text" class="input" name="location" required="true" id="_xfUid-8-1618071982">
    </dd>
</dl>

This means that custom fields do not have an accessible name. This seems to affect custom fields for (at least) users, threads and XMFG media fields.
 
Last edited:

XF Bug Bot

XenForo bug fixer bot
Staff member
Thank you for reporting this issue, it has now been resolved. We are aiming to include any changes that have been made in a future XF release (2.2.5).

Change log:
When editing custom field values, ensure that labels are associated with the related input for accessibility purposes.
There may be a delay before changes are rolled out to the XenForo Community.
 
Top