Pull to refresh
8K+
2
4
Rating
Send message

Спасибо за важный уточняющий вопрос, достойный отдельной дискуссии. Это не основная тема моей статьи, но давайте попробуем разобраться.

В статье под «автоподстановкой» мы описывали идеальный пользовательский опыт — когда код не нужно вводить вручную. Однако важно различать понятия.

autocomplete="one-time-code" — действительно, не вставляет код автоматически. Этот атрибут даёт браузеру сигнал, что перед ним поле для одноразового кода, и включает механизм удобной подсказки. Пользователь видит код над клавиатурой и осознанно нажимает на него, чтобы вставить в поле. Это быстро, понятно и даёт полный контроль.

WebOTP API — более продвинутая технология. Она позволяет веб-приложению запросить код из смс и вставить его автоматически (иногда даже отправляя форму следом). Но у этого подхода есть ограничения: он работает не во всех браузерах, требует специального формата смс и запрашивает разрешение пользователя.

Почему я упоминаю autocomplete="one-time-code"

Для мобильного веба и PWA этот подход — золотой стандарт и надёжный фундамент. Я делаю акцент на нём, потому что:

  • Он работает уже сегодня на большинстве мобильных устройств — в отличие от WebOTP, он отлично поддерживается в экосистеме Apple и многих других браузерах.

  • Не требует сложной настройки — достаточно одного HTML-атрибута.

  • Даёт предсказуемый и безопасный UX: пользователь всегда контролирует момент вставки кода.

С учётом современных реалий, когда пользователь не может скачать приложение из App Store и использует мобильный веб или PWA, это самый надёжный и доступный способ.

Здравствуйте, спасибо за вопрос. В этом случае будет происходить следующее:

  1. Как только пользователь начинает редактировать код (стирает хотя бы одну цифру), сообщение об ошибке исчезает — это сигнал, что система «услышала» его и готова к новой попытке.

  2. После этого у пользователя есть полная свобода действий:

    • исправить одну конкретную цифру (кликнуть в нужную ячейку, стереть и ввести новую);

    • стереть несколько цифр подряд или полностью очистить поле и ввести код заново;

    • перемещаться между ячейками кликами, стрелками или клавишей Tab — никаких блокировок или принудительных перенаправлений.

  3. Если в форме реализована автоматическая отправка при заполнении всех ячеек, важно использовать debounce (задержку 500–800 мс после последнего ввода). Это даёт пользователю время на правку и предотвращает преждевременную отправку неполного кода.

Полные рекомендации с источниками описаны в статье. Если я неправильно поняла вопрос, уточните, пожалуйста.

Information

Rating
1,374-th
Registered
Activity

Specialization

UI/UX дизайнер, Веб дизайнер
Средний