Веб-доступ: html собственный выпадающий список - открывать пункты меню при нажатии
При нажатии Enter нажмите, по умолчанию форма будет отправлена. В соответствии с критериями доступности, если фокус находится на элементе select, при нажатии на него должны открываться элементы списка. Я хочу знать, возможно ли сделать доступным выпадающий список, используя собственный элемент select, который будет соответствовать критерии доступности
<div class="custom-dropdown">
<select id="cities" name="select">
<option value="1">Delhi</option>
<option value="2">Mumbai</option>
</select>``
</div>
Я предотвратил поведение отправки по умолчанию.
$('.custom-dropdown').keydown(function (event) {
if (event.keyCode == 13) {
event.preventDefault();
return false;
}
});
Я пробовал событие keyup для вызова события клика, но оно не работает
$('#cities').keyup(function (e) {
if (e.keyCode == 13) {
$("#cities").trigger("click");
}
});
1 ответ
Я уверен, что единственный элемент, который будет отправлять форму автоматически, это кнопка отправки.
<input type="submit" value="foo">
или же
<button>foo</button>
(по умолчанию type
для <button>
элемент "отправить")
<select>
не определяется как отправка формы. Вы уверены, что фокусируете внимание на
Вам также следует ознакомиться со спецификацией " 4.10.18.6. Отправка формы "
Вы основываете свое внимание на примере, а не на спецификации:
Пример списка на этой странице реализует следующий интерфейс клавиатуры
Если вы ссылаетесь на Взаимодействие с клавиатурой для шаблона проектирования списка, клавиша Enter не упоминается.
В примере используется Enter, потому что триггером для списка является кнопка.
Кроме того, в целом правила ARIA предназначены для случаев, когда вы не можете использовать стандартные элементы, в соответствии с Первым правилом использования ARIA.
Если вы можете использовать собственный элемент HTML [HTML51] или атрибут с семантикой и поведением, которые вам уже требуются, вместо повторного выбора элемента и добавления роли, состояния или свойства ARIA, чтобы сделать его доступным, то сделайте это.
Другими словами, вам не нужно заботиться об этих правилах, когда вы не реализуете свои собственные элементы управления.