HTML
Быстрый переход к обучению
Что нужно знать
- Семантическая структура страницы и влияние на accessibility/SEO.
- Формы:
label,name, validation attributes, autocomplete. - Медиа:
picture, responsive images,video/audioсобытия. - Базовые мета-теги:
charset,viewport,description. - Разница
script,defer,async,module.
Что уметь объяснить на собеседовании
- Когда
sectionуместнееdiv, и почему. - Почему хороший HTML влияет на скорость и поддержку.
- Как сделать форму доступной без JS-хаков.
- В чем практическая разница
canvasиsvg.
Грейд-фокус
- Junior: семантика, формы, базовая доступность, корректные атрибуты.
- Middle: доступность в комплексных UI, правильная разметка для SEO и аналитики.
- Senior: системные стандарты HTML в команде, quality gates и ревью-критерии.
Глубокие кейсы собеседования
-
Форма без label: визуально работает, но screen-reader не понимает поля. сильный ответ: явные
label for/id, подсказки ошибок, фокус-менеджмент. -
Тяжелые изображения на главной: layout-shift и поздний LCP из-за отсутствия размеров и оптимизации. сильный ответ:
width/height,srcset/sizes, современный формат и lazy-loading. -
Неправильный script loading: блокировка parsing из-за sync-script в
<head>. сильный ответ:defer/moduleдля большинства сценариев,asyncдля независимых скриптов.
Практический минимум
- Сверстать семантический каркас страницы без CSS.
- Сделать форму логина с доступной разметкой и валидацией.
- Добавить responsive-изображение через
picture/srcset. - Проверить страницу через Lighthouse accessibility-аудит.
Типовые ловушки
- Использовать только
divи терять смысловую структуру. - Ставить placeholder вместо label.
- Игнорировать keyboard-навигацию формы.
- Не задавать размер медиа-элементам.
Self-review перед собеседованием
- Я могу объяснить семантику страницы в терминах пользователя и доступности.
- Я умею быстро проверить форму на a11y-ошибки.
- Я понимаю разницу между
async,deferиmoduleв реальной загрузке. - Я могу дать пример, где HTML-ошибка вызвала продуктовый баг.
Связанные материалы
Архивный монолит
Полный старый материал: HTML (архив)