Улучшения предлагаемого параметра <permission> элемент

Опубликовано: 12 мая 2025 г.

Предложенный HTML-элемент <permission> пока находится на стадии первоначального тестирования, поскольку команда Chrome дорабатывает его, опираясь на фундамент, заложенный в ходе первоначального тестирования . В этой статье рассказывается об улучшениях, призванных обеспечить вам большую гибкость и контроль при запросе разрешений в веб-приложениях. Для получения полного обзора появления элемента <permission> и его первоначальных возможностей обратитесь к нашей предыдущей статье «Первоначальное тестирование нового HTML-элемента <permission> » .

Поддержка контента для резервного пользовательского интерфейса

Элемент <permission> изначально определялся как пустой элемент без содержимого до версии Chrome 136. Начиная с Chrome 137, он поддерживает содержимое, что означает, что теперь его необходимо размечать открывающими и закрывающими тегами:

<permission>
  <!-- optional content -->
</permission>

Это изменение позволяет включать резервные пользовательские интерфейсы в содержимое элемента. Эти резервные варианты отображаются в браузерах, которые не поддерживают элемент <permission> или когда указан неподдерживаемый атрибут type . Это обеспечивает более плавную работу и улучшенное взаимодействие с пользователем в различных браузерных средах.

<!-- Invalid `type` attribute value -->
<permission type="not-supported">
  <p>Your browser does not support the specified <code>type</code>.</p>
</permission>

Более детальное программное обнаружение функций

Чтобы помочь вам определить поддержку конкретных типов разрешений, мы ввели статический метод ` isTypeSupported() :

HTMLPermissionElement.isTypeSupported('geolocation');

Этот метод возвращает логическое значение, указывающее, поддерживается ли указанный тип разрешения. В сочетании с существующим методом определения наличия функции ` typeof HTMLPermissionElement !== 'undefined' теперь можно программно убедиться как в поддержке элемента <permission> , так и в поддержке конкретных типов разрешений.

Обратите внимание, что вы также можете передавать несколько типов разрешений, разделенных пробелами (например, "camera microphone" ), и система вернет информацию о том, является ли вся строка допустимым значением "type" . Например, вызов функции isTypeSupported() со следующими параметрами вернет следующие результаты:

  • "camera"true
  • "geolocation"true
  • "camera geolocation"false (Хотя каждый тип поддерживается по отдельности, комбинация не поддерживается.)

Обновлены названия событий

В Chrome 136 мы ввели два новых события взамен предыдущих:

  • onpromptdismiss (заменяет ondismiss )
  • onpromptaction (заменяет onresolve )

Новые события обеспечивают более понятную семантику и лучше соответствуют поведению элемента. Старые события будут устарели в Chrome 138, поэтому мы рекомендуем обновить обработчики событий соответствующим образом.

Поддержка иконок

Мы работаем над включением поддержки значков в элементе <permission> , запланированной для Chrome 138. Эта функция позволит отображать предопределенные значки, соответствующие типу разрешения, с ограниченными возможностями стилизации, такими как настройка цвета и размера. Точные детали API все еще уточняются.

В следующих примерах показаны значения по умолчанию, другой цвет заливки и отсутствие цвета заливки, но с черной обводкой.

Стиль по умолчанию

Отображение значка по умолчанию.

Цвет значка по умолчанию совпадает с цветом текста элемента, содержащего разрешение.

Модифицированный стиль

Приведенные ниже примеры демонстрируют образцовые изменения в стандартном стиле оформления.

Изменение цвета значка

::permission-icon {
  fill: black;
}

Модифицированное отображение с иконкой сплошного черного цвета.

Изменение контура значка

::permission-icon {
  fill: white;
  stroke: black;
  stroke-width: 20px;
}

Модифицированное отображение с иконкой, обведенной черным контуром.

Отключить значок

После запуска иконка будет включена по умолчанию. Если вы хотите отключить иконку, это можно сделать с помощью следующего CSS-кода.

::permission-icon {
  display: none;
}

Рекомендации по стилю

Для получения исчерпывающих рекомендаций по оформлению элемента <permission> , включая лучшие практики и ограничения, обратитесь к руководству по оформлению элемента <permission> . Этот ресурс содержит подробные инструкции, которые помогут вам эффективно оформить элемент в ваших приложениях.

Расширенная поддержка платформы и возможностей.

Элемент <permission> теперь поддерживает дополнительные платформы и возможности:

  • Поддержка Android: Теперь этот элемент работает на устройствах Android, что расширяет его применимость на различных пользовательских платформах.
  • Поддержка геолокации: Теперь вы можете запрашивать разрешения type="geolocation" с помощью элемента <permission> с дополнительным логическим атрибутом preciselocation . Хотя атрибут preciselocation влияет только на формулировку запроса, мы активно работаем над тем, чтобы в будущих обновлениях различать разрешения на определение приблизительного и точного местоположения.

Выводы

Эти улучшения элемента <permission> являются частью наших постоянных усилий по оптимизации запросов на получение разрешений и улучшению пользовательского опыта в интернете. Мы призываем вас поэкспериментировать с этими новыми функциями и предоставить обратную связь, чтобы помочь нам усовершенствовать и развить эту возможность.

,

Опубликовано: 12 мая 2025 г.

Предложенный HTML-элемент <permission> пока находится на стадии первоначального тестирования, поскольку команда Chrome дорабатывает его, опираясь на фундамент, заложенный в ходе первоначального тестирования . В этой статье рассказывается об улучшениях, призванных обеспечить вам большую гибкость и контроль при запросе разрешений в веб-приложениях. Для получения полного обзора появления элемента <permission> и его первоначальных возможностей обратитесь к нашей предыдущей статье «Первоначальное тестирование нового HTML-элемента <permission> » .

Поддержка контента для резервного пользовательского интерфейса

Элемент <permission> изначально определялся как пустой элемент без содержимого до версии Chrome 136. Начиная с Chrome 137, он поддерживает содержимое, что означает, что теперь его необходимо размечать открывающими и закрывающими тегами:

<permission>
  <!-- optional content -->
</permission>

Это изменение позволяет включать резервные пользовательские интерфейсы в содержимое элемента. Эти резервные варианты отображаются в браузерах, которые не поддерживают элемент <permission> или когда указан неподдерживаемый атрибут type . Это обеспечивает более плавную работу и улучшенное взаимодействие с пользователем в различных браузерных средах.

<!-- Invalid `type` attribute value -->
<permission type="not-supported">
  <p>Your browser does not support the specified <code>type</code>.</p>
</permission>

Более детальное программное обнаружение функций

Чтобы помочь вам определить поддержку конкретных типов разрешений, мы ввели статический метод ` isTypeSupported() :

HTMLPermissionElement.isTypeSupported('geolocation');

Этот метод возвращает логическое значение, указывающее, поддерживается ли указанный тип разрешения. В сочетании с существующим методом определения наличия функции ` typeof HTMLPermissionElement !== 'undefined' теперь можно программно убедиться как в поддержке элемента <permission> , так и в поддержке конкретных типов разрешений.

Обратите внимание, что вы также можете передавать несколько типов разрешений, разделенных пробелами (например, "camera microphone" ), и система вернет информацию о том, является ли вся строка допустимым значением "type" . Например, вызов функции isTypeSupported() со следующими параметрами вернет следующие результаты:

  • "camera"true
  • "geolocation"true
  • "camera geolocation"false (Хотя каждый тип поддерживается по отдельности, комбинация не поддерживается.)

Обновлены названия событий

В Chrome 136 мы ввели два новых события взамен предыдущих:

  • onpromptdismiss (заменяет ondismiss )
  • onpromptaction (заменяет onresolve )

Новые события обеспечивают более понятную семантику и лучше соответствуют поведению элемента. Старые события будут устарели в Chrome 138, поэтому мы рекомендуем обновить обработчики событий соответствующим образом.

Поддержка иконок

Мы работаем над включением поддержки значков в элементе <permission> , запланированной для Chrome 138. Эта функция позволит отображать предопределенные значки, соответствующие типу разрешения, с ограниченными возможностями стилизации, такими как настройка цвета и размера. Точные детали API все еще уточняются.

В следующих примерах показаны значения по умолчанию, другой цвет заливки и отсутствие цвета заливки, но с черной обводкой.

Стиль по умолчанию

Отображение значка по умолчанию.

Цвет значка по умолчанию совпадает с цветом текста элемента, содержащего разрешение.

Модифицированный стиль

Приведенные ниже примеры демонстрируют образцовые изменения в стандартном стиле оформления.

Изменение цвета значка

::permission-icon {
  fill: black;
}

Модифицированное отображение с иконкой сплошного черного цвета.

Изменение контура значка

::permission-icon {
  fill: white;
  stroke: black;
  stroke-width: 20px;
}

Модифицированное отображение с иконкой, обведенной черным контуром.

Отключить значок

После запуска иконка будет включена по умолчанию. Если вы хотите отключить иконку, это можно сделать с помощью следующего CSS-кода.

::permission-icon {
  display: none;
}

Рекомендации по стилю

Для получения исчерпывающих рекомендаций по оформлению элемента <permission> , включая лучшие практики и ограничения, обратитесь к руководству по оформлению элемента <permission> . Этот ресурс содержит подробные инструкции, которые помогут вам эффективно оформить элемент в ваших приложениях.

Расширенная поддержка платформы и возможностей.

Элемент <permission> теперь поддерживает дополнительные платформы и возможности:

  • Поддержка Android: Теперь этот элемент работает на устройствах Android, что расширяет его применимость на различных пользовательских платформах.
  • Поддержка геолокации: Теперь вы можете запрашивать разрешения type="geolocation" с помощью элемента <permission> с дополнительным логическим атрибутом preciselocation . Хотя атрибут preciselocation влияет только на формулировку запроса, мы активно работаем над тем, чтобы в будущих обновлениях различать разрешения на определение приблизительного и точного местоположения.

Выводы

Эти улучшения элемента <permission> являются частью наших постоянных усилий по оптимизации запросов на получение разрешений и улучшению пользовательского опыта в интернете. Мы призываем вас поэкспериментировать с этими новыми функциями и предоставить обратную связь, чтобы помочь нам усовершенствовать и развить эту возможность.