입력창에 role="combobox" aria-expanded aria-controls를, 목록에는 role="listbox"와 각 항목에 role="option"을 씁니다. 입력하는 동안 현재 포커스된 후보는 실제 DOM 포커스를 옮기지 않고 aria-activedescendant로만 가리켜서(입력 포커스를 유지한 채) 스크린리더에 알립니다.
드롭다운 메뉴와 다른 점은 위에서 설명한 대로 텍스트 입력의 유무입니다. 네이티브 <select>와도 다릅니다 — select는 전체 옵션을 스크롤하거나 첫 글자를 눌러 점프하는 식이라 옵션이 적을 때 적합하고, 콤보박스는 옵션이 수백~수천 개라 타이핑으로 즉시 좁혀야 할 때 씁니다.
후보가 없으면 "결과 없음" 상태를 목록 자리에 보여줘야 하고, Esc는 목록만 닫아야지 입력값까지 지우면 안 됩니다.