HTML5 имеет новый глобальный атрибут hidden
, который можно использовать для скрытия содержимого.
<article hidden>
<h2>Article #1</h2>
<p>Lorem ipsum ...</p>
</article>
CSS имеет правило display:none
, которое также можно использовать для скрытия содержимого.
article { display:none; }
Визуально они идентичны. В чем разница семантически? Вычислительном?
Какие рекомендации следует учитывать при использовании одного или другого?
ТИА.
РЕДАКТИРОВАТЬ. На основании ответов @newtron (ниже) я сделал больше поиска. Атрибут hidden
был горячо оспариван в прошлом году и (по-видимому) едва ли попал в спецификацию HTML5. Некоторые утверждали, что он избыточен и не имеет никакой цели. Из того, что я могу сказать, окончательная оценка такова: если я нацелен только на веб-браузеры, нет никакой разницы. (Одна страница даже утверждала, что веб-браузеры использовали display:none
для реализации скрытого атрибута.) Но если я рассматриваю доступность (например, возможно, я ожидаю, что мой контент будет прочитан экранными программами), тогда есть разница. Правило CSS display:none
может скрыть мой контент от веб-браузеров, но соответствующее правило арии (например, aria-hidden="false"
) может попытаться прочитать его. Таким образом, я согласен с тем, что ответ @newtron верен, хотя, возможно (возможно) не так ясен, как мне хотелось бы. Спасибо @newtron за вашу помощь.