Статьи

Лучше измерить температуру в Интернете — она ​​иссякает с другим «itis»

На заре революции стандартов пришло явление DIV-itis .

Это были благие намерения, но наивные разработчики, для которых преобразование таблиц для разметки означало просто замену каждого <table> и <td> на соответствующий <div> .

Многие люди даже говорили о преобразовании моего сайта из таблиц в div , как если бы это было единственной целью ; при этом полностью отсутствует реальная цель преобразования визуальной разметки в семантическую .

Затем появились списки — списки за списками за списками — и вместе с ним новая, но тесно связанная пандемия, последнее явление LIST-itis . То, что началось с вдохновляющей идеи добавления значения в навигационные списки , стало для некоторых чудом-средством от псевдосемантической разметки, поскольку каждая возможная структура была ратифицирована в списки. Честно говоря, люди строили целые сайты практически ни с чем!

Немного повторения истории

И теперь это происходит снова!

Мне нравится копаться в исходном коде интересных сайтов (так всегда было немного с разметкой поездов). Но в последнее время я наблюдаю чрезмерное использование элемента <section> , например, в этом примере из реального мира (где для простоты я удалил различные атрибуты и встроенную разметку):

 <body> <section> <section> ... </section> </section> <header> <section> ... </section> </header> <section> <section> <section> <section> ... </section> </section> </section> </section> 

Но элемент section не является контейнером , и его не следует использовать для обтекания произвольных фрагментов содержимого в целях стилизации или макета.

Чтобы процитировать проект спецификации :

Элемент section не является универсальным контейнерным элементом. Когда элемент нужен для стилизации или для удобства написания сценариев, авторам рекомендуется использовать вместо этого элемент div. Общее правило заключается в том, что элемент section уместен только в том случае, если содержимое элемента будет явно указано в схеме документа.

Поэтому большинство этих элементов <section> вероятно, должны быть вместо <div> .

Спасаясь от прошлого

Я никого не виню в замешательстве. Сам проект спецификации во многих местах является расплывчатым или противоречивым; В конце концов, это черновик.

Например, все еще далеко не ясно, для чего действительно <article> элемент <article> . Обтекание разделов, которые ссылаются на статьи? Обтягивает ли это содержание статьи? Обвивает ли она всю страницу, содержащую статью? Или это только для синдикации? В любом случае, что такое статья ? (А почему нет элемента <content> ?)

В конце концов, спецификация должна прояснить все ее неясности; Либо так, либо мы в конечном итоге остановимся на множестве общепринятых, но не ратифицированных соглашений о том, что это значит (что было бы неудачно, особенно если учесть, что именно HTML5 пытается этого избежать).

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

Кажется, что-то вроде «слишком крутого для школы» относится к использованию <div> в HTML5 , как будто они выглядят устаревшими, немодными, грубыми или что они больше не нужны. Конечно, это правда, что они нам больше не понадобятся для вещей, которые теперь имеют определенные семантические элементы, такие как <header> и <footer> ; но еще долго мы будем нуждаться в них в качестве нейтральных структурных контейнеров. Такие контейнеры крайне необходимы при построении веб-страниц и интерфейсов, но они все равно компенсируют неспособность CSS определить терминал для работоспособных структурных свойств макета для блоков и псевдоблоков!

Проектирование на будущее

Я мог бы возразить, что при отсутствии четко определенного значения для семантики нового элемента его вообще не следует использовать. Потому что для кого на самом деле семантика? Они предназначены для технологий доступа (таких как программы чтения с экрана), поисковых роботов и других видов роботов. И все же, как эти машинные читатели могут получить функционально совместимое значение из семантики элементов, когда даже автор этой семантики не совсем уверен, что они означают?

Ну что ж. Я не ожидаю, что кто-то передумает.

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

И остерегайтесь SECTION-itis !