# Failure of Success Criterion 1.3.5 due to incorrect `autocomplete` attribute values

ID: F107

Technology: failures

Type: failure

## Applicability

This technique applies to form inputs created in HTML which collect information about the user of the form.

## Description

The purpose of this technique is to identify a failure condition where form inputs do not have the correct `autocomplete` attribute values for inputs that request information about the user of the form.

Success Criterion 1.3.5 uses a fixed list of tokens in Input Purposes for user interface components (based on the HTML 5.2 `autocomplete` attribute's fixed list of token values) because the programmatic association of specified token values (metadata) allows for other machine processing, such as expressing the input label in different modalities.

Another important part of this Success Criterion is that the token values are associated with inputs that are scoped directly to the primary end user.

## Examples

### Incorrect attribute

An online form used to collect the user's name and birthday which uses incorrect `autocomplete` attributes. The correct attribute value for the first control is `name`, and for the second control the made-up attribute value `birthday` was used instead of `bday`.

    <h2>Your details:</h2>
    <label for="uname">Name:</label>
    <input autocomplete="email" id="uname" type="text">
    <label for="ubirthday">Birthday:</label>
    <input autocomplete="birthday" id="ubirthday" type="text">

## Tests

### Procedure

For each form field which collects information about the user of the form:

1. Check that the form field has an `autocomplete` attribute and value pair that does not match the purpose of the input.
2. Check that the input purpose is not communicated programmatically through any other method.

### Expected Results

- If checks #1 and #2 are true, then the failure condition applies, and the content fails the Success Criterion.

## Related Techniques

- H98: Using HTML `autocomplete` attributes

## Resources

- WCAG - Input Purposes for User Interface Components.
- HTML - Autofilling form controls: the `autocomplete` attribute.