Клавиша / esc

Атрибут hidden

Скрывает элемент безо всякого CSS.

Время чтения: меньше 5 мин

Кратко

Скопировано

Железобетонный способ скрыть элемент в тех случаях, когда не подходят opacity или visibility. В отличие от двух других способов этот применяется прямо в HTML-разметке. Не лучшая практика: влиять на внешний вид страницы через разметку, но иногда именно это и нужно. По сути, это display: none — именно так он описан в браузерных стилях.

Пример

Скопировано
        
          
          <p hidden>  Этот текст будет невиден на странице. Хотя элемент в разметке будет!</p>
          <p hidden>
  Этот текст будет невиден на странице. Хотя элемент в разметке будет!
</p>

        
        
          
        
      

Как пишется

Скопировано

Поскольку атрибут hidden глобальный, его можно добавить к абсолютно любому тегу, чтобы скрыть его от глаз пользователя. Просто поставьте его после имени самого тега до закрывающей треугольной скобки. Собственно, как и все прочие атрибуты.

Этот атрибут булевый, у него может быть значение true — элемент спрятан, или false — элемент видим. Но обычно его пишут без значения, что приравнивается к true по умолчанию. Значения могут пригодиться, если вы будете менять их при помощи JavaScript.

Очень важно знать, что тег, спрятанный при помощи атрибута hidden становится невидим не только для пользователя, но и для скринридеров.

По причине того, что тег с этим атрибутом пропадает совсем как от пользователя, так и от скринридеров, стоит использовать этот приём аккуратно, понимая последствия.

Подсказки

Скопировано

💡 Как и с display: none, такое скрытие нельзя анимировать ☹️

💡 Атрибут пишется в одно слово, без значения, если вы хотите спрятать элемент.

💡 Элемент скрывается от глаз не только пользователя, но и вообще как будто не существует. Его не видят скринридеры, на него нельзя установить ссылку.

💡 Элемент с атрибутом hidden остаётся виден поисковым роботам и будет ими проиндексирован.

На собеседовании

Скопировано
Задать вопрос в рубрику
🤚 Я знаю ответ

Матвей Романов  отвечает

Скопировано
  1. hidden — это HTML-атрибут, который предназначен для скрытия элемента на странице. Это означает, что элемент не будет отображаться в пользовательском интерфейсе и скроется от вспомогательных технологий, но он все ещё существует в DOM.
  2. aria-hidden="true" — это атрибут ARIA (Accessible Rich Internet Applications), который используется для указания, что элемент должен быть скрыт от вспомогательных технологий, таких как скринридеры. Это означает, что элемент не будет доступен для слушателей событий или считывания содержимого вспомогательными технологиями, но он все ещё виден в пользовательском интерфейсе.
  3. role="presentation" — это ARIA-атрибут, который указывает, что элемент является частью представления или дизайна и не имеет никакой роли в вспомогательных технологиях. Это означает, что роль элемента будет игнорироваться такими технологиями.
  4. role="none" — это синоним role="presentation", который тоже указывает, что элемент не имеет роли для вспомогательных технологий. Это означает, что роль элемента не будет доступна для слушателей событий или механизмов навигации вспомогательными технологиями.