What does this mean?
People using screen readers are not able to see the layout of a form. To make forms accessible, they must define explicit text labels for each form control.
More helpUsually the best solution is to use a <label>
element. The label may be linked to
by the form control:
<label for="name">Full name</label>
<input type="name" id="name">
or the <label>
can be wrapped around the form control:
<label>
Full name <input type="name">
</label>
Buttons are different, as their labels are specified by the code for the button, e.g.
<input type="submit" value="Send message">
<button>Send message</button>
Alternatively ARIA attributes, such as aria-label
may be used, but this information
will not be conveyed to visual users. For more information, see W3C's guide to labeling controls.
Hidden input fields (<input type="hidden">
) do not require labels.
Note that the placeholder
attribute
should not be used as an alternative to a label.
27.2% done
How close this website is to fixing this issue.
HTML | Found on page | Issues |
---|---|---|
<button class="cross-button">
|
273 | |
<button class="arrow-button right">
|
89 | |
<button class="close cross-button">
|
89 | |
<button class="cross-button plain">
|
89 | |
<button class="arrow-button left">
|
89 | |
<input type="text" placeholder="Search..." id="search-term-text">
|
76 | |
<input type="text" placeholder="サーチ..." id="search-term-text">
|
13 | |
<select class="date-selector">...</select>
|
7 | |
<input autocomplete="name" data-val="true" data-val-required="Please fill in your name" id="Name" name="Name" placeholder="Name, required" required="required" type="text" value>
|
6 | |
<input autocomplete="email" data-val="true" data-val-email="Please fill in a valid email address." data-val-required="Please fill in your email address." id="EmailAddress" name="EmailAddress" placeholder="Email address, required" required="required" type="email" value>
|
6 |