ARIA property
aria-autocomplete
How a text field predicts what you are typing.
It tells assistive technology what kind of help this field offers, before anybody types a character. Inline completion, a list of suggestions, or both. What it does not do is announce that a suggestion has arrived.
Which roles may carry aria-autocomplete
- Value
- token
- Filed as
- A property, which is how ARIA files it and not a rule about how often it changes.
- Roles that inherit it
searchbox
Those lists are not advice. Browsers are required to ignore a non-global attribute sitting on a role that does not support it, so aria-autocomplete on the wrong element is not weak, it is absent. You can read it in the DOM and nobody using a screen reader can.
Every role above comes from the specification's own list for this attribute, checked name for name. The normative definition stays with the W3C, in the aria-autocomplete section of the ARIA specification.
Keeping aria-autocomplete true
This is one of the few here you genuinely set once, and the spec says so in as many words. It is not meant to signal that a completion currently exists, and authors are told not to change its value to communicate one. That job belongs to aria-expanded, which flips as the suggestion list opens and closes. So the upkeep on a combobox lives on aria-expanded and on aria-activedescendant, not here. If your field is rewriting this attribute as suggestions come and go, it is doing another attribute's work and the announcement people need is still missing.
How aria-autocomplete gets checked
There are test rules that check an ARIA attribute is one that exists, is allowed on the role underneath it, and carries a value of the right type. What they map to is ARIA's own author requirements rather than any WCAG criterion, so a misplaced attribute breaks ARIA without being a WCAG failure by itself. It becomes one under 4.1.2 Name, Role, Value the moment the missing or wrong value means the control's state cannot be worked out programmatically, which is what usually happens next.
Nothing automated catches the failure this page is about. A stale value is a valid value, on a permitted role, with the right type. It is only wrong about the world.
Attributes you will meet alongside aria-autocomplete
- aria-activedescendant Points at the item inside a composite widget that is currently active, when focus stays on the container.
- aria-errormessage Points at the message explaining why this field is invalid. Only meaningful while aria-invalid is set.
- aria-expanded Whether the thing this control opens is currently open.
- aria-haspopup Says this control opens something, and what kind of thing it opens. A menu, a dialog, a listbox.
- aria-invalid Says a field's value has failed validation.
- aria-multiline Whether a text field takes more than one line, which changes what Enter does.
- aria-placeholder A hint shown in an empty field. It is not a label and does not replace one.
- aria-readonly The value can be read but not changed. Unlike disabled, it is still part of the form.
Every ARIA state and property · Every ARIA role · ARIA explained