Атрибут autocapitalize тега <aside>
Описание
Атрибут autocapitalize управляет автоматическим преобразованием ввода текста в верхний регистр на мобильных устройствах для редактируемого содержимого элемента <aside>. Не влияет на работу в десктопных браузерах.
<aside contenteditable="true" autocapitalize="sentences">
<h3>Редактируемая боковая панель</h3>
<p>Попробуйте ввести текст на мобильном устройстве. Первая буква предложения будет автоматически заглавной.</p>
</aside>
Допустимые значения:
| Значение | Поведение | Пример |
|---|---|---|
off |
Автоматическая капитализация отключена | ввод как есть |
none |
Аналогично off |
ввод как есть |
on |
Автоматическая капитализация включена | Каждое Слово С Заглавной |
sentences |
Первая буква каждого предложения заглавная | Предложение начинается так. |
words |
Первая буква каждого слова заглавная | Каждое Слово Так |
characters |
Все символы в верхнем регистре | ВСЕ ЗАГЛАВНЫЕ |
Особенности работы:
- Работает только на мобильных устройствах (iOS, Android)
- Требует атрибута
contenteditable="true"или использования в полях формы - Не влияет на программное изменение содержимого
- Поддержка зависит от мобильной ОС и браузера
Рекомендации по использованию:
<!-- Для комментариев -->
<aside contenteditable="true" autocapitalize="sentences">
<h3>Оставьте отзыв</h3>
<p>Ваши комментарии здесь...</p>
</aside>
<!-- Для ввода имен -->
<aside contenteditable="true" autocapitalize="words">
<h3>Введите ваше имя</h3>
<p>Имя Фамилия</p>
</aside>
<!-- Для кодов/никнеймов -->
<aside contenteditable="true" autocapitalize="off">
<h3>Ваш никнейм</h3>
<p>user123</p>
</aside>
Ограничения: Атрибут autocapitalize не является стандартом W3C, но поддерживается большинством мобильных браузеров. Не следует полагаться на него как на единственный способ контроля ввода.
Поддержка платформами:
| Платформа | Поддержка | Примечания |
|---|---|---|
| iOS Safari | Да | Полная поддержка всех значений |
| Android Chrome | Да | Частичная поддержка |
| Десктопные браузеры | Нет | Не влияет на ввод |
Альтернативные решения:
<aside contenteditable="true" id="capitalize-example">
<h3>Программная капитализация</h3>
<p>Пример с обработкой ввода через JavaScript.</p>
</aside>
<script>
document.getElementById('capitalize-example').addEventListener('input', function(e) {
// Капитализация каждого слова
if (this.textContent) {
this.textContent = this.textContent.replace(/\b\w/g, function(char) {
return char.toUpperCase();
});
}
});
</script>
Совет: Для важных случаев контроля ввода используйте JavaScript-валидацию в дополнение к autocapitalize, чтобы обеспечить consistent поведение на всех платформах.
Лучшие практики:
- Используйте для элементов с пользовательским вводом на мобильных устройствах
- Сочетайте с атрибутом
inputmodeдля лучшего контроля клавиатуры - Для важных данных реализуйте серверную валидацию
- Тестируйте на реальных мобильных устройствах
Примечание: Хотя атрибут autocapitalize удобен для мобильного UX, он не заменяет полноценную валидацию ввода и должен использоваться как вспомогательное средство.