Действительно, существует несколько подходов. Мой предпочтительный вариант (так как он ВСЕГДА работает как для дисплея Брайля, так и для голоса, в ОС Windows и Apple):
<label id="selectorLabel">Just for demo purposes...</label>
<select aria-labeledby="selectorLabel" name="demoSelector">
<option value="foo">Foo</option>
<option value="bar">Bar</option>
</select>
Другие способы используют for (здесь вам нужен идентификатор в выпадающем списке, в то время как свойство for находится на метке). Или вы можете сделать то, что предложил другое решение.
Преимущество aria-labeledby
? Имя селектора появляется рядом с КАЖДОЙ опцией, а не просто одной (отключенной) опцией. По крайней мере, на Windows. В операционной системе Apple ярлык появляется рядом с раскрывающимся списком, а после активации параметры отображаются внизу страницы. Лично мне не нравится свойство for, поскольку оно неправильно обрабатывается брайлевскими дисплеями в операционной системе Apple, оставляя элемент «немеченым» для пользователей брайлевских дисплеев - хотя он и помечен.