HTML Academy · Урок

Вызыватели интереса и атрибут command

Изучите атрибуты command и commandfor для декларативных действий

Урок 4 из 414 шагов

«Вызыватели интереса и атрибут command» — бесплатный урок HTML Academy на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения HTML Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс HTML Academy содержит 4 уроков всего.

Два новых декларативных шаблона

Сообщество Open UI стандартизирует два новых атрибута HTML — command для действий, запускаемых щелчком, и interesttarget для «интереса», вызываемого наведением или фокусом (на этой основе работают всплывающие подсказки и предварительные просмотры). Оба атрибута расширяют HTML декларативными возможностями, для реализации которых традиционно требовался JavaScript.

Атрибут command

Кнопка с атрибутами command="show-modal" и commandfor="dialog-id" показывает диалоговое окно без JS — вместо ручных вызовов dialog.showModal(). Другие команды: command="close", command="toggle-popover", command="show-popover".

<button command="show-modal" commandfor="my-dialog">Open</button>
<dialog id="my-dialog">...</dialog>

Поддерживаемые команды

Начальный набор предназначен для распространённых элементов интерфейса: показа и скрытия диалоговых окон (встроенный <dialog>), переключения всплывающих элементов (Popover API); со временем он может расшириться. Пользовательские элементы могут объявлять принимаемые команды с помощью обработчиков события oncommand.

Пользовательские команды

Помимо встроенных команд, спецификация допускает пользовательские строки команд, начинающиеся с «--». Целевой элемент получает событие command, которое можно обработать в JS: el.addEventListener("command", (e) => { if (e.command === "--save") save(); }).

Инициаторы показа по интересу

Атрибут interesttarget указывает целевой элемент для «интереса» — обычно всплывающую подсказку, которая появляется при наведении или фокусе. Браузер автоматически обрабатывает задержку (300 мс для определения намерения при наведении), позиционирование (с помощью позиционирования с привязкой) и закрытие.

<button interesttarget="user-info">Profile</button>
<div id="user-info" popover="hint">Ada Lovelace — Admin</div>

В сочетании с popover="hint"

Режим всплывающего элемента hint предназначен для подсказок, которые появляются при проявлении интереса. Они не являются модальными, не перехватывают фокус и закрываются, когда интерес пропадает. Сочетание interesttarget + popover="hint" позволяет создать встроенную подсказку с помощью двух атрибутов HTML.

Преимущества для доступности

Встроенные диалоговые окна удерживают фокус внутри себя; встроенные всплывающие элементы управляют порядком наложения; встроенные инициаторы показа по интересу обрабатывают задержку определения намерения при наведении и сообщают программам чтения с экрана о связанных элементах. Замена пользовательских реализаций на JS этими декларативными примитивами надёжно повышает качество доступности.

Состояние спецификации

Эти возможности всё ещё проходят стандартизацию. Точные названия атрибутов и набор команд могут измениться. Реализации сначала появляются в Chromium. Для использования в рабочих проектах стоит дождаться стабилизации названий и поддержки как минимум в двух браузерах — вероятно, это произойдёт в течение ближайших одного-двух лет.

Замена шаблонов JS

Каждая из этих возможностей заменяет JavaScript-код, который миллионы раз писали и переписывали: управление диалоговыми окнами, запуск всплывающих элементов и поведение подсказок. Перенос этих шаблонов в HTML уменьшает размер страницы, повышает единообразие и позволяет браузеру применять оптимизации.

Open UI как источник

Группа сообщества Open UI (open-ui.org) выполняет значительную часть этой работы: предлагает и тестирует решения, а также помогает проводить новые элементы и атрибуты HTML через процесс стандартизации. Следите за их блогом, чтобы узнавать о последних предложениях.

Связь с другими современными возможностями

command, interesttarget, popover, dialog, позиционирование с привязкой, переходы представлений и настраиваемые элементы выбора — всё это части единого стремления перенести шаблоны библиотек компонентов в саму платформу. Каждая возможность по отдельности невелика, но вместе они представляют собой крупнейшее за многие годы расширение набора средств пользовательского интерфейса HTML.

Что делать сейчас

Следите за предложениями (open-ui.org), экспериментируйте в Chromium с включёнными флагами и планируйте внедрение по мере стабилизации возможностей. Проведите аудит существующей кодовой базы: подсчитайте, сколько JS-кода посвящено работе диалоговых окон, всплывающих элементов и подсказок. В течение нескольких выпусков этот код должен быть заменён.

Проверка знаний

Для чего нужен атрибут command у кнопки?

Итоги

Две новые возможности расширяют декларативный набор средств пользовательского интерфейса HTML: command + commandfor — для действий, запускаемых щелчком (показ модального окна, переключение всплывающего элемента), а interesttarget + popover="hint" — для подсказок, запускаемых наведением или фокусом. Обе возможности заменяют распространённые шаблоны JavaScript атрибутами HTML, повышая доступность и уменьшая размер пакета. Они всё ещё развиваются; следите за Open UI, чтобы дождаться стабилизации, и внедряйте их по мере появления поддержки в браузерах.

Можно начать бесплатно

Изучай HTML с ИИ-репетитором — бесплатно

Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.

Курсы
40
Уроки
159

Часто задаваемые вопросы

Урок «Вызыватели интереса и атрибут command» бесплатный?

Да — полный текст урока «Вызыватели интереса и атрибут command» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс HTML Academy, подпишись на CoddyKit PRO. Курс HTML Academy содержит 4 уроков всего.

Чему я научусь в уроке «Вызыватели интереса и атрибут command»?

Изучите атрибуты command и commandfor для декларативных действий Ты практикуешь HTML Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать HTML Academy?

Предыдущий опыт не требуется. HTML Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.

Сколько времени занимает урок «Вызыватели интереса и атрибут command»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке HTML Academy?

Да. Каждый урок HTML Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Декларативный Shadow DOM
  2. Popover API
  3. Элемент selectlist
  4. Вызыватели интереса и атрибут command
← Назад к HTML Academy