The input gets role="combobox" aria-expanded aria-controls; the list gets role="listbox" with role="option" entries. As you type, the currently highlighted candidate is pointed to via aria-activedescendant rather than moving real DOM focus, so the input keeps focus while a screen reader still announces the highlight.
It differs from a dropdown menu in having text input, as described there. It also differs from a native <select> — a select is fine when there are few options to scroll or jump to by first letter, while a combobox is for hundreds or thousands of options that need typing to narrow down instantly.
Show a "no results" state in place of the list when nothing matches, and Esc should close the list without clearing what was typed.