Junior
139
questionbank
Какие существуют способы установки фокуса на элементе?
Ответ от нейросети
sobes.tech AI
element.focus()
// Установка фокуса на input при загрузке страницы
window.addEventListener('load', () => {
const inputElement = document.getElementById('myInput');
if (inputElement) {
inputElement.focus();
}
});
autoFocus атрибут для HTML элементов:
<input type="text" autoFocus>
Программная установка фокуса с помощью requestAnimationFrame:
// Отложенная установка фокуса
requestAnimationFrame(() => {
const elementToFocus = document.getElementById('targetElement');
if (elementToFocus) {
elementToFocus.focus();
}
});
Использование tabIndex:
<div id="focusableDiv" tabindex="0">
Этот div теперь может быть сфокусирован.
</div>
Скриптовое управление фокусом в SPA:
// Передача фокуса при переходе между страницами в React
useEffect(() => {
const headingElement = document.getElementById('pageHeading');
if (headingElement) {
headingElement.focus();
}
}, [location.pathname]); // Зависит от изменения URL
Accessibility-соображения при управлении фокусом:
- Убедиться, что фокус виден (style outline).
- Следовать естественному порядку фокуса (DOM-структура, tabIndex > 0).
- Управлять фокусом при открытии модальных окон, всплывающих окон.
- Возвращать фокус на исходный элемент после закрытия интерактивных элементов.
- Используйте
aria-liveрегионы для оповещения читалок экрана о изменениях, влияющих на фокус.