Параметр autoFirst в библиотеке Awesomplete управляет
автоматическим выделением первого элемента списка подсказок при открытии
выпадающего меню. Это один из ключевых элементов настройки UX
автодополнения, так как он напрямую влияет на скорость выбора и
поведение клавиатурной навигации.
autoFirstОсновная задача параметра заключается в том, чтобы заранее установить активный (highlighted) элемент в списке предложений без необходимости ручного перемещения пользователя по списку.
При включённом autoFirst:
При выключенном autoFirst:
Параметр задаётся при инициализации экземпляра
Awesomplete:
new Awesomplete(inputElement, {
list: ["Apple", "Apricot", "Avocado"],
autoFirst: true
});
По умолчанию значение параметра — false.
autoFirst: trueПри включении автоматического выбора первого элемента библиотека выполняет дополнительную логику при каждом обновлении списка подсказок.
aria-selected и внутренний CSS-класс активности.Если список содержит:
Apple
Apricot
Avocado
то при вводе запроса и открытии списка:
Apple;Apple;autoFirst: falseВ выключенном режиме:
Это поведение ближе к классическим dropdown-компонентам, где выбор всегда является явным действием пользователя.
autoFirst: true полезенautoFirst: false предпочтительнееautoFirst работает поверх механизма фильтрации данных.
Это означает, что:
Если используется пользовательская функция фильтрации, поведение сохраняется, но первый элемент определяется на основе результата этой функции.
При изменении списка в реальном времени:
awesomplete.list = ["Banana", "Blueberry", "Blackberry"];
поведение autoFirst сохраняется:
Это важно при работе с AJAX или асинхронной подгрузкой данных.
Клавиши управления ведут себя по-разному в зависимости от состояния
autoFirst:
autoFirst
перемещает выделение со второго элемента; при выключенном — с нулевой
позиции.autoFirst сразу
подтверждает первый элемент; при выключенном требует предварительного
выбора.Библиотека Awesomplete использует ARIA-атрибуты для обозначения активного элемента.
При autoFirst: true:
aria-selected="true";При autoFirst: false:
Неправильное понимание поведения autoFirst часто
приводит к логическим ошибкам в интерфейсе:
Также важно учитывать, что активный элемент может изменяться при каждом вводе символа, что создаёт эффект «прыгающего» выбора при быстром наборе текста.
При использовании объектов вместо строк:
new Awesomplete(input, {
list: [
{ label: "USA", value: "US" },
{ label: "Ukraine", value: "UA" }
],
autoFirst: true
});
логика остаётся неизменной:
label;value.Если список содержит:
autoFirst не имеет эффекта;Параметр не влияет на скорость фильтрации напрямую, однако добавляет шаг установки активного элемента после каждого обновления списка.
Внутренне это:
На практике влияние на производительность отсутствует даже при больших списках.
autoFirst часто используется вместе с:
minChars — чтобы активировать первый элемент только
после достаточного ввода;maxItems — ограничение количества отображаемых
подсказок усиливает эффект первого элемента;filter — влияет на то, какой элемент станет первым
после сортировки;sort — напрямую определяет, какой элемент окажется на
позиции №1.Именно комбинация sort + autoFirst формирует итоговое
поведение автоподстановки.