Another workaround for this issue is to use the form as the grid object and use display: contents on the fieldset. This doesn’t break semantic markup, though if there are multiple elements within the form they will all be included in the grid.
.some-form {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
}
.some-form__fields {
display: contents;
}
<form class="some-form">
<fieldset class="some-form__fields">
<label>
First Name
<input type="text"/>
</label>
<label>
Last Name
<input type="text"/>
</label>
<label>
Favourite snack
<input type="text"/>
</label>
<label>
Favourite color
<input type="text"/>
</label>
</fieldset>
</form>