Комментарии 20
Конечно. Только он теперь официально называется веселым проверятором :)
Кто-то пользуется валидатором w3c?
Зачем минус) Совершенно справедливый вопрос, учитывая дикую сферичность этого (и любых других) валидаторов. А также то, что html в наши дни практически всегда сгенерированный.
учитывая дикую сферичность этого (и любых других) валидаторов
Простите, вы точно не судите обо всех валидаторах по древнему DTD-валидатору (который, действительно, даже парсил разметку иначе, чем браузеры)? Просто актуальный проверятор для HTML5 (о котором нескучно рассказывает один из его разработчиков в интервью по ссылке комментом выше) развился во вполне неплохой линтер, и действительно помогает отловить многие проблемы до их проявления:). И сгенерированность HTML этому ничуть не мешает.
Ничего не имею против адекватных линтеров, а тем более автоматизированно применяемых :)
Не могу удержаться от пары-тройки занудных дополнений:
- браузеры и раньше нормально обрабатывали блоки в ссылках, даже во времена IE6;
- если сама ссылка вложена, например, в
span
или вp
, валидатор-таки ругнется на попытку вложить в нее блок. Дело в том, что в HTML5 у ссылки «прозрачная» модель содержимого — можно вкладывать то же, что можно вкладывать в родителя (за вычетом интерактивщины). В HTML4 два таких элемента тоже были —ins
иdel
; - в HTML5 от самого деления элементов на «блочные», «строчные» и еще какие-то (поскольку и в HTML4 не всё получалось изящно раскидать по этим категориям) вообще отказались. Оно приводило к путанице между структурной ролью элементов и их внешним видом и мало говорило о том, что можно вкладывать в сами элементы (вот как угадать, не зная заранее, во что можно вложить блок — в «строчный»
a
или в «блочный»p
?). Современная терминология («фразовый контент», «потоковый контент», «интерактивный контент» и т.п.) однозначнее и, имхо, лучше сразу приучаться к ней.
браузеры и раньше нормально обрабатывали блоки в ссылках, даже во времена IE6;
В Firefox 2, который вышел на 5 лет позже IE6, были серьезные проблемы с ссылками вокруг блоков
Даже в Firefox 3 (возможно, и позже) были странности с display:block внутри ссылки с дефолтным display:inline (независимо от элементов, даже для кристально валидных спанов). И новые «блочные» элементы HTML5 Fx2 в принципе не понимал, но это отдельная история, со ссылками не связанная. Именно от недопустимой вложенности известных элементов, при правильной структуре боксов в CSS, проблем не помню. Возможно, заблуждаюсь…
<video controls>Нельзя</audio>Открыли видео, а закрыли аудио — специально так сделали?
<a> вкладывали в <button> — такое я кстати много где видел.
Ну и небольшой лайфхак: использовать onclick если требуется как-то обрабатывать клики на элементах…
<div class="mylink" role="link" tabindex="0" onclick="location.href='/page2.html';">
TEXT
</div>
И еще, большое спасибо, что учитываете скринридеры и не оставляете их без внимания.
А ещё это провоцирует делать пустые, недоступные ссылки без текста внутри и тогда скринридерам непонятно куда она ведёт. Не делайте так.
Многие начинают с учебников начала 2000-х (некоторые из которых переиздавались и позже без соотв. коррекции). После которых объективная реальность невольно вызывает когнитивный диссонанс. Ролик/статья помогают его разрешить, тем и полезны.
Увы, есть учебники, позиционирующие себя как по HTML5, но ничтоже сумняшеся фигачащие устаревшими концепциями типа тех же «блочных и строчных элементов». А материалы w3.org новичку скорее взорвут мозг, чем помогут разобраться (особенно с учетом того, что актуальные и устаревшие спецификации пока визуально никак не различаются). Так что это хороший ответ на конкретный часто возникающий вопрос, который новичка избавит от сомнений и метаний, а более продвинутому даст хорошую отправную точку для дальнейшего изучения моделей содержимого и типов контента HTML5 и прочих фундаментальных вещей (которые авторы учебников почему-то склонны обходить стороной).
Кто-то, из тех кто вдруг не знал, тут прочитает и будет знать. Если вам уже это знакомо, может лучше пройти мимо, чем критиковать?
Ссылки вокруг блоков