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.

Usually 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.



0% done

How close this website is to fixing this issue.

HTML Found on page Issues
<input ng-model="searchTerm" ng-change="typeaheadActive=true;typeahead(searchTerm)" ng-focus="typeaheadActive=true" ng-keydown="typeaheadKeydown($event)" data-typeahead="Ted Suggests" autocomplete="off" type="text" id="search" class="search_form_text ng-pristine ng-valid" name="text" placeholder="Enter search term here" maxlength="100"> 125
<input id="newsletterEmailInput" ng-model="news.email" class="newsletter_input ng-pristine ng-invalid ng-invalid-required ng-valid-email" ng-class="(ready.emailEmpty || ready.emailInvalid) ? 'newsletter_input_error' : ''" type="email" name="emailAddress" placeholder="Enter Email Address Here" required> 125
<input tabindex="0" class="emb-sc embStyle-sc" type="email" placeholder="Enter email address"> 105
<button data-v-0f8a0708 class="cw-btn cw-btn--icon" style="transform: rotate(270deg);">...</button> 85
<button data-v-3c5c66ce class="cw-btn cw-btn--icon cw-btn--sound">...</button> 85
<button data-v-0f8a0708 class="cw-btn cw-minimise">...</button> 85
<select id="select_store" name="store" ng-model="storeSelectedUK" ng-options="store as store.displayName for store in storesUK | orderBy:'displayName'" ng-init="storeSelectedUK=null" class="ng-pristine ng-valid">...</select> 2
<input id="search_postcode_town" class="box ng-pristine ng-valid" type="text" name="postcode" value placeholder="Postcode or town" ng-model="locationText"> 2
<select id="select_store" name="store" ng-model="storesWorldwide.selectedStore" ng-options="store as store.displayName for store in storesWorldwide.selectedCountryStores | orderBy:'displayName'" ng-disabled="!storesWorldwide.selectedCountry" class="ng-pristine ng-valid" disabled="disabled">...</select> 2
<select id="select_country" name="store" ng-model="storesWorldwide.selectedCountry" ng-options="country as country.name for country in storesWorldwide.countries | orderBy:'name'" ng-change="getCountryStores()" class="ng-pristine ng-valid">...</select> 2
623 distinct issues were found in the sample of 125 web pages. Only the first 10 issues are shown here.
More results from Ted Baker