Я не уверен, как форма будет обозначена как aria-labelledby или aria-describeby, когда вы пытаетесь поместить заголовок и заявление об отказе от ответственности типа «Все поля обязательны, если не отмечены как необязательные» в верхней части формы. Я думаю, что это то, как я думаю, что это сделано, но я новичок в доступности, поэтому любые исправления будут очень благодарны!
<form id="profile optional">
<h1 arialabelledby="profile">Profile</h1>
<p aria-describedby="optional">All fields are required unless marked optional</p>
<fieldset>
<legend id="userInfo" aria-labelledby="formA">User Info</legend>
<div class="form-control">
<label id="firstName" for="firstName">First Name</label>
<input type="text" name="firstName" aria-labelledby="firstName userInfo" aria-required="true" aria-describedby="error-message"/>
<span id="error-message" style="display:none" aria-hidden="true">Name is required</span>
</div>
<div class="form-control">
<label id="lastName" for="lastName">Last Name</label>
<input type="text" name="lastName" aria-labelledby="lastName userInfo" aria-required="true" aria-describedby="error-message"/>
<span id="error-message" style="display:none" aria-hidden="true">Name is required</span>
</div>
<div class="form-control">
<label id="nickName" for="nickName">Nick Name (optional)</label>
<input type="text" name="nickName" aria-labelledby="nickName userInfo"/>
</div>
<fieldset>
<fieldset>
...
</fieldset>
<button type="submit" aria-label="Submit Profile">Submit</button>
</form>
Изменить * код для кнопки отправки